<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->
The `mysql_user` module always reports the "changed" state on hosts with Python 3.7 set as the inrerpreter. The changed message points to https://github.com/ansible/ansible/commit/9c5275092f4759c87d4cd938a73368955934b9b9 commit as the possible culprit; the changed state shows up on Ansible 2.8.0+, but not on Ansible 2.7.0+. The actual functionality (creation of the MySQL user account, setting password, etc.) seems to work fine.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
mysql_user

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.3
  config file = None
  configured module search path = ['/home/drybjed/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/drybjed/.local/lib/python3.7/site-packages/ansible
  executable location = /home/drybjed/.local/bin/ansible
  python version = 3.7.3 (default, Apr  3 2019, 05:39:12) [GCC 8.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
No changes
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
The Ansible Controller is a Debian Buster (10) host, the working remote host is a Debian Stretch (9) host with Python 2.7 and 3.5 used as the interpreters (no changes). The faulty remote host is a Debian Buster (10) host with Python 3.7 as the interpreter.

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
---

- hosts: all
  become: True
  tasks:

    - name: Manage MySQL account
      mysql_user:
        name: 'test-user'
        host: 'localhost'
        password: 'test-password'
        state: 'present'

    - name: Manage MySQL account
      mysql_user:
        name: 'test-user'
        host: 'localhost'
        password: 'test-password'
        state: 'present'
      register: output

    - debug: var=output
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
```
PLAY [all] ******************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************
ok: [remote]

TASK [Manage MySQL account] *************************************************************************************************************************
ok: [remote]

TASK [Manage MySQL account] *************************************************************************************************************************
ok: [remote]

TASK [debug] ****************************************************************************************************************************************
ok: [remote] => {
    "output": {
        "changed": false,
        "failed": false,
        "msg": "User unchanged",
        "user": "test-user"
    }
}
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
PLAY [all] ******************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************
ok: [remote]

TASK [Manage MySQL account] *************************************************************************************************************************
changed: [remote]

TASK [Manage MySQL account] *************************************************************************************************************************
changed: [remote]

TASK [debug] ****************************************************************************************************************************************
ok: [remote] => {
    "output": {
        "changed": true,
        "failed": false,
        "msg": "Password updated (new style)",
        "user": "test-user"
    }
}
```

type: str
    choices: [ always, on_create ]
    default: always
    version_added: "2.0"
  plugin:
    description:
      - User's plugin to authenticate (``CREATE USER user IDENTIFIED WITH plugin``).
    type: str
    version_added: '2.10'
  plugin_hash_string:
    description:
      - User's plugin hash string (``CREATE USER user IDENTIFIED WITH plugin AS plugin_hash_string``).
    type: str
    version_added: '2.10'
  plugin_auth_string:
    description:
      - User's plugin auth_string (``CREATE USER user IDENTIFIED WITH plugin BY plugin_auth_string``).
    type: str
    version_added: '2.10'
notes:
   - "MySQL server installs with default login_user of 'root' and no password. To secure this user
     as part of an idempotent playbook, you must create at least two tasks: the first must change the root user's password,
     without providing any login_user/login_password details. The second must drop a ~/.my.cnf file containing
     the new root credentials. Subsequent runs of the playbook will then succeed by reading the new credentials from
     the file."
   - Currently, there is only support for the `mysql_native_password` encrypted password hash module.
seealso:
- module: mysql_info
- name: MySQL access control and account management reference
  description: Complete reference of the MySQL access control and account management documentation.