From ff728b2d22f9c4c1d4a9e5edf9f4f79ffa035412 Mon Sep 17 00:00:00 2001 From: Chris Routh Date: Wed, 14 Sep 2016 08:27:20 -0700 Subject: [PATCH] Check for MySQL 5.7 and act appropriately on Redhat/Arch --- mysql/server.sls | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/mysql/server.sls b/mysql/server.sls index e99699d..a537fe2 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -64,13 +64,17 @@ mysql_delete_anonymous_user_{{ host }}: # on arch linux: inital mysql datadirectory is not created mysql_install_datadir: cmd.run: +{% if pkg.version >= 5.7 %} + - name: mysqld --initialize-insecure --user=mysql --basedir=/usr --datadir=/var/lib/mysql +{% else %} - name: mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql +{% endif %} - user: root - creates: /var/lib/mysql/mysql/user.frm - env: - TMPDIR: '/tmp' - require: - - pkg: {{ mysql.server }} + - pkg: {{ mysql.server }} - file: mysql_config - require_in: - service: mysqld @@ -84,12 +88,26 @@ mysqld-packages: - debconf: mysql_debconf {% endif %} +{% if os_family == 'RedHat' or 'Suse' and pkg.version >= 5.7 %} +# Initialize mysql database with --initialize-insecure option before starting service so we don't get locked out. +mysql_initialize: + cmd.run: + - name: mysqld --initialize-insecure --user=mysql --basedir=/usr --datadir=/var/lib/mysql + - user: root + - creates: /var/lib/mysql/mysql/ + - require: + - pkg: {{ mysql.server }} +{% endif %} + mysqld: service.running: - name: {{ mysql.service }} - enable: True - require: - pkg: {{ mysql.server }} +{% if os_family == 'RedHat' or 'Suse' and pkg.version >= 5.7 %} + - cmd: mysql_initialize +{% endif %} - watch: - pkg: {{ mysql.server }} - file: mysql_config