Skip to content

Latest commit

 

History

History
721 lines (490 loc) · 34.9 KB

File metadata and controls

721 lines (490 loc) · 34.9 KB

Community MySQL and MariaDB Collection Release Notes

Topics

This changelog describes changes after version 2.0.0.

This is a patch release of the ansible.mariadb collection. It only contains documentation fixes.

This is a patch release of the ansible.mariadb collection. It only contains fixes of broken links in README.

This is the first release of the ansible.mariadb collection. This collection was cloned from the ansible.mysql collection to allow its contributors and maintainers to focus on MariaDB-related automation development. MySQL is NOT supported by the ansible.mariadb collection.

  • The mysql_clone, mysql_resource_group, and mysql_resource_group_info have been removed from the ansible.mariadb collection because they do not support MariaDB.
  • This ansible.mariadb collection only supports MariaDB. Please do NOT use this collection for MySQL automation - use the ansible.mysql collection instead.

This is a minor release of the ansible.mysql collection. This changelog contains all changes that have been made to this collection after the previous release.

  • CI - MySQL 8.0.38 has been removed from the CI test matrix because MySQL 8.0 reached End of Life in April 2026. The collection still supports MySQL 8.0 at runtime through version-conditional code paths.
  • CI - PyMySQL 0.9.3 and 1.0.2 have been removed from the CI test matrix. PyMySQL 0.9.3 is unmaintained and has an unfixed CVE-2024-36039. PyMySQL 1.0.2 is redundant with 1.1.1 as both cover the same code path. PyMySQL 0.10.1 has been promoted to the main test matrix.
  • mysql_user - fix errors on MySQL 9.7.0+ caused by removal of SHA1() SQL function and mysql_native_password plugin. The module now uses IDENTIFIED BY for password management on MySQL 9.7.0+.
  • mysql_binlog_info - Gather MySQL or MariaDB binary log information
  • mysql_clone - Clone a MySQL instance from a donor server
  • mysql_perf_schema - Manage MySQL or MariaDB Performance Schema setup tables
  • mysql_resource_group - Add, update, or remove MySQL resource groups
  • mysql_resource_group_info - Gather information about MySQL resource groups
  • mysql_slow_log - Manage MySQL or MariaDB slow query log settings

This is a patch release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release. Specifically, it contains documentation fixes, changes to ansible-lint configuration, and adds execution environments configuration.

This is a major release of the ansible.mysql collection. Since this version, ansible.mysql superseds the community.mysql collection.

  • The collection supports ansible-core version >= 2.16.0.
  • mysql_user - the deprecated user alias of the name argument has been removed. Use the name argument instead.

This is a patch release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_query - fix Value of unknown type error when query results contain non-JSON-serializable types such as decimal.Decimal or datetime. Results are now round-tripped through json.dumps(default=str) before being returned, coercing unserializable values to their string representation (ansible-collections/ansible.mysql#783).

This is a minor release of the ansible.mysql collection. This changelog contains all breaking changes to the modules in this collection

  • Update imports from ansible.module_utils._text to use ansible.module_utils.common.text.converters
  • Update imports from ansible.module_utils.six to use their python3 equivalent. This change will make this collection incompatible for managed hosts on python2.7.
  • mysql_user - When creating a new user, and specifying parsec as plugin it wil generate the wrong SQL query. It should be added to the same plugin check as ed25519 so that it generates a query using USING PASSWORDS(%s) instead of BY %s (ansible-collections/ansible.mysql#779).

This is a minor release of the ansible.mysql collection. This changelog contains all breaking changes to the modules in this collection that have been added after the previous release.

This is a patch release of the ansible.mysql collection. This changelog contains all breaking changes to the modules in this collection that have been added after the previous release.

This is a major release of the ansible.mysql collection. This changelog contains all breaking changes to the modules in this collection that have been added after the release of ansible.mysql 3.16.0.

  • Since version 4.0.0, the collection accepts code written in Python 3. Modules aren't tested against Python 2 and might not work in Python 2 environments.
  • collection - stop testing against mysqlclient connector as its support was deprecated in this collection - use PyMySQL connector instead! It'll stop working in 5.0.0 when we remove all related code (ansible-collections/ansible.mysql#654).
  • mysql_db - the pipefail argument's default value is set to true. If your target machines do not use bash as a default interpreter, set pipefail to false explicitly. However, we strongly recommend setting up bash as a default and pipefail=true as it will protect you from getting broken dumps you don't know about (ansible-collections/ansible.mysql#407).
  • mysql_info - The users_info filter does not return the plugin_auth_string field anymore. Use the plugin_hash_string return value instead (ansible-collections/ansible.mysql#629).
  • mysql_role - the column_case_sensitive argument's default value has been changed to true. If your playbook expected the column to be automatically uppercased for your users privileges, you should set this to false explicitly (ansible-collections/ansible.mysql#578).
  • mysql_user - the column_case_sensitive argument's default value has been changed to true. If your playbook expected the column to be automatically uppercased for your users privileges, you should set this to false explicitly (ansible-collections/ansible.mysql#577).

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.'

  • mysql_query - fix a Python 2 compatibility issue caused by the addition of execution_time_ms in version 3.12 (see ansible-collections/ansible.mysql#716).
  • mysql_user - fix a crash (unable to parse the MySQL grant string: SET DEFAULT ROLE somerole FOR someuser`@`%) when using the mysql_user module with a DEFAULT role present in MariaDB. The DEFAULT role is now ignored by the parser (ansible-collections/ansible.mysql#710).

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.'

  • mysql_info - fix a crash (ERROR 1141, There is no such grant defined for user 'PUBLIC' on host '%') when using the users_info filter with a PUBLIC role present in MariaDB 10.11+. Do note that the fix doesn't change the fact that the module won't return the privileges from the PUBLIC role in the users privileges list. It can't do that because you have to login as the particular user and use SHOW GRANTS FOR CURRENT_USER. We considered using an aggregation with the SHOW GRANTS FOR PUBLIC command. However, this approach would make copying users from one server to another transform the privileges inherited from the role as if they were direct privileges on the user.
  • mysql_replication - fixed an issue where setting primary_ssl_verify_server_cert to false had no effect (ansible-collections/ansible.mysql#689).

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • Integration tests for MariaDB 11.4 have replaced those for 10.5. The previous version is now 10.11.
  • mysql_user - add locked option to lock/unlock users, this is mainly used to have users that will act as definers on stored procedures.
  • mysql_db - fix dump and import to find MariaDB binaries (mariadb and mariadb-dump) when MariaDB 11+ is used and symbolic links to MySQL binaries are absent.

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_db - added zstd (de)compression support for import/dump states (ansible-collections/ansible.mysql#696).
  • mysql_query - returns the execution_time_ms list containing execution time per query in milliseconds.

This is a minor release of the ansible.mysql collection.

This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_info - adds the count of tables for each database to the returned values. It is possible to exclude this new field using the db_table_count exclusion filter. (ansible-collections/ansible.mysql#691)
  • mysql_user,mysql_role - The sql_mode ANSI_QUOTES affects how the modules mysql_user and mysql_role compare the existing privileges with the configured privileges, as well as decide whether double quotes or backticks should be used in the GRANT statements. Pointing out in issue 671, the modules mysql_user and mysql_role allow users to enable/disable ANSI_QUOTES in session variable (within a DB session, the session variable always overwrites the global one). But due to the issue, the modules do not check for ANSI_MODE in the session variable, instead, they only check in the GLOBAL one.That behavior is not only limiting the users' flexibility, but also not allowing users to explicitly disable ANSI_MODE to work around such bugs like https://bugs.mysql.com/bug.php?id=115953. (ansible-collections/ansible.mysql#671)

This is a bugfix release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

This is a bugfix release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

This is a patch release of the ansible.mysql collection. Besides a bugfix, it contains an important upcoming breaking-change information.

  • mysql_user - the user alias of the name argument has been deprecated and will be removed in collection version 5.0.0. Use the name argument instead.
  • mysql_user - module makes changes when is executed with plugin_auth_string parameter and check mode.

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_info - Add tls_requires returned value for the users_info filter (ansible-collections/ansible.mysql#628).
  • mysql_info - return a database server engine used (ansible-collections/ansible.mysql#644).
  • mysql_replication - Adds support for CHANGE REPLICATION SOURCE TO statement (ansible-collections/ansible.mysql#635).
  • mysql_replication - Adds support for SHOW BINARY LOG STATUS and SHOW BINLOG STATUS on getprimary mode.
  • mysql_replication - Improve detection of IsReplica and IsPrimary by inspecting the dictionary returned from the SQL query instead of relying on variable types. This ensures compatibility with changes in the connector or the output of SHOW REPLICA STATUS and SHOW MASTER STATUS, allowing for easier maintenance if these change in the future.
  • mysql_user - Add salt parameter to generate static hash for caching_sha2_password and sha256_password plugins.
  • collection - support of mysqlclient connector is deprecated - use PyMySQL connector instead! We will stop testing against it in collection version 4.0.0 and remove the related code in 5.0.0 (ansible-collections/ansible.mysql#654).
  • mysql_info - The users_info filter returned variable plugin_auth_string contains the hashed password and it's misleading, it will be removed from ansible.mysql 4.0.0. Use the plugin_hash_string return value instead (ansible-collections/ansible.mysql#629).

This is a minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • Collection version 2.*.* is EOL, no more bugfixes will be backported. Please consider upgrading to the latest version.
  • mysql_info - the slave_status filter was returning an empty list on MariaDB with multiple replication channels. It now returns all channels by running SHOW ALL SLAVES STATUS for MariaDB servers (ansible-collections/ansible.mysql#603).

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • The ansible.mysql collection no longer supports ansible-core 2.12 and ansible-core 2.13. While we take no active measures to prevent usage and there are no plans to introduce incompatible code to the modules, we will stop testing those versions. Both are or will soon be End of Life and if you are still using them, you should consider upgrading to the latest Ansible / ansible-core 2.15 or later as soon as possible (ansible-collections/ansible.mysql#574).
  • mysql_role - the column_case_sensitive argument's default value will be changed to true in ansible.mysql 4.0.0. If your playbook expected the column to be automatically uppercased for your roles privileges, you should set this to false explicitly (ansible-collections/ansible.mysql#578).
  • mysql_user - the column_case_sensitive argument's default value will be changed to true in ansible.mysql 4.0.0. If your playbook expected the column to be automatically uppercased for your users privileges, you should set this to false explicitly (ansible-collections/ansible.mysql#577).

This is a patch release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

This is a patch release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql module utils - use the connection arguments db instead of database and passwd instead of password when running with older mysql drivers (MySQLdb < 2.1.0 or PyMySQL < 1.0.0) (ansible-collections/ansible.mysql#551).

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_user - when revoke privs consists only of GRANT, a 2nd revoke query is executed with empty privs to revoke that ended in an SQL exception (ansible-collections/ansible.mysql#503).
  • mysql_variables - add uppercase character pattern to regex to allow GLOBAL variables containing uppercase characters. This recognizes variable names used in Galera, for example, wsrep_OSU_method, which breaks the normal pattern of all lowercase characters (ansible-collections/ansible.mysql#501).

This is the patch release of the ansible.mysql collection. This changelog contains all changes to the modules and plugins in this collection that have been made after the previous release.

  • mysql_user, mysql_role - mysql/mariadb recent versions translate 'ALL PRIVILEGES' to a list of specific privileges. That caused a change every time we modified user privileges. This fix compares privs before and after user modification to avoid this infinite change (ansible-collections/ansible.mysql#77).

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.4.0.

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.3.0.

  • mysql_db - the pipefail argument's default value will be changed to true in ansible.mysql 4.0.0. If your target machines do not use bash as a default interpreter, set pipefail to false explicitly. However, we strongly recommend setting up bash as a default and pipefail=true as it will protect you from getting broken dumps you don't know about (ansible-collections/ansible.mysql#407).
  • Include simplified_bsd.txt license file for various module utils.
  • mysql_db - Using compression masks errors messages from mysql_dump. By default the fix is inactive to ensure retro-compatibility with system without bash. To activate the fix, use the module option pipefail=true (ansible-collections/ansible.mysql#256).
  • mysql_replication - when the primary_ssl argument is set to no, the module will turn off SSL (ansible-collections/ansible.mysql#393).

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.2.1.

  • mysql_role - add the argument members_must_exist (boolean, default true). The assertion that the users supplied in the members argument exist is only executed when the new argument members_must_exist is true, to allow opt-out (ansible-collections/ansible.mysql#369).
  • mysql_user - Add the option on_new_username to argument update_password to reuse the password (plugin and authentication_string) when creating a new user if some user with the same name already exists. If the existing user with the same name have varying passwords, the password from the arguments is used like with update_password: always (ansible-collections/ansible.mysql#365).
  • mysql_user - Add the result field password_changed (boolean). It is true, when the user got a new password. When the user was created with update_password: on_new_username and an existing password was reused, password_changed is false (ansible-collections/ansible.mysql#365).
  • mysql_query - fix false change reports when IF EXISTS/IF NOT EXISTS clause is used (ansible-collections/ansible.mysql#268).
  • mysql_role - don't add members to a role when creating the role and detach_members: true is set (ansible-collections/ansible.mysql#367).
  • mysql_role - in some cases (when "SHOW GRANTS" did not use backticks for quotes), no unwanted members were detached from the role (and redundant "GRANT" statements were executed for wanted members). This is fixed by querying the existing role members from the mysql.role_edges (MySQL) or mysql.roles_mapping (MariaDB) tables instead of parsing the "SHOW GRANTS" output (ansible-collections/ansible.mysql#368).
  • mysql_user - fix logic when update_password is set to on_create for users using plugin* arguments (ansible-collections/ansible.mysql#334). The on_create sets password to None for old mysql_native_authentication but not for authentiation methods which uses the plugin* arguments. This PR changes this so on_create also exchange plugin, plugin_hash_string, plugin_auth_string to None in the list of arguments to change

This is the patch release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.2.0.

  • Include PSF-license.txt file for plugins/module_utils/_version.py.

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.1.3.

  • The ansible.mysql collection no longer supports Ansible 2.9 and ansible-base 2.10. While we take no active measures to prevent usage and there are no plans to introduce incompatible code to the modules, we will stop testing against Ansible 2.9 and ansible-base 2.10. Both will very soon be End of Life and if you are still using them, you should consider upgrading to the latest Ansible / ansible-core 2.11 or later as soon as possible (ansible-collections/ansible.mysql#343).
  • mysql_user and mysql_role: Add the argument subtract_privs (boolean, default false, mutually exclusive with append_privs). If set, the privileges given in priv are revoked and existing privileges are kept (ansible-collections/ansible.mysql#333).

This is the patch release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.1.2.

This is the patch release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.1.1.

This is the patch release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.1.0.

This is the minor release of the ansible.mysql collection. This changelog contains all changes to the modules in this collection that have been added after the release of ansible.mysql 3.0.0.

  • Added explicit description of the supported versions of databases and connectors. Changes to the collection are NOT tested against database versions older than mysql 5.7.31 and mariadb 10.2.37 or connector versions older than pymysql 0.7.10 and mysqlclient 2.0.1. (ansible-collections/ansible.mysql#141)
  • mysql_user - added the force_context boolean option to set the default database context for the queries to be the mysql database. This way replication/binlog filters can catch the statements (ansible-collections/ansible.mysql#265).

This is the major release of the ansible.mysql collection. This changelog contains all breaking changes to the modules in this collection that have been added after the release of ansible.mysql 2.3.2.