diff --git a/roles/database_server/tasks/main.yml b/roles/database_server/tasks/main.yml index 2cc551597f234eb71df8f4a77956ead59982db33..28d08d137adf544045cddd4dc4a40865b4a8ab36 100644 --- a/roles/database_server/tasks/main.yml +++ b/roles/database_server/tasks/main.yml @@ -33,20 +33,48 @@ group: root mode: 0400 -- name: Set UTF-8 encoding as default for MariaDB +- name: Check if root user authentication is based on use of unix_socket module (Stretch default) + command: mysql --skip-column-names -B -e "select 1 from mysql.user where user='root' and plugin='unix_socket';" + when: "ansible_distribution_release == 'stretch'" + register: "root_using_unix_socket_authentication" + changed_when: false + +- name: Disable use of unix socket login on Debian Stretch (temporary workaround) + command: "mysql -B -e \"update mysql.user set plugin='' where user='root' and plugin='unix_socket'; flush privileges;\"" + when: "ansible_distribution_release == 'stretch' and root_using_unix_socket_authentication.stdout != ''" + +- name: Remove UTF-8 encoding configuration file from the old location on Debian Stretch + file: + path: "/etc/mysql/conf.d/utf8.cnf" + state: absent + when: "ansible_distribution_release == 'stretch'" + register: mariadb_utf8_configuration_stretch + +- name: Set UTF-8 encoding as default for MariaDB (on Jessie) copy: src: "utf8.cnf" dest: "/etc/mysql/conf.d/utf8.cnf" owner: root group: root mode: 0644 - register: mariadb_utf8_configuration + when: "ansible_distribution_release == 'jessie'" + register: mariadb_utf8_configuration_jessie + +- name: Set UTF-8 encoding as default for MariaDB (on Stretch) + copy: + src: "utf8.cnf" + dest: "/etc/mysql/mariadb.conf.d/90-utf8.cnf" + owner: root + group: root + mode: 0644 + when: "ansible_distribution_release == 'stretch'" + register: mariadb_utf8_configuration_stretch - name: Restart MariaDB in order to use UTF-8 as default character set service: name: mysql state: restarted - when: mariadb_utf8_configuration.changed + when: mariadb_utf8_configuration_jessie.changed or mariadb_utf8_configuration_stretch.changed tags: # [ANSIBLE0016] Tasks that run when changed should likely be handlers # UTF-8 configuration must be applied immediatelly in order to ensure that