fix(freebsd): upgrade to mysql57-server

Current default version for FreeBSD is MySQL 5.7, also python 2.x is
deprecated and should be removed any time soon.

FreeBSD uses the `mysql_install_db` which generates a temporary root
password upon the first start. To the best of my understanding I haven't
seen any code in the formula that handles this method. So I added
a FreeBSD-scpecific block for initialization. While here, create
`/var/log/mysql` without which the server won't start if it doesn't
exist.

Co-authored-by: Geraud CONTINSOUZAS <geraud.continsouzas@skazy.nc>
This commit is contained in:
Géraud CONTINSOUZAS 2020-08-25 09:45:37 +11:00 committed by GitHub
parent 5bf7d57f14
commit ec681995b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 7 deletions

View file

@ -206,14 +206,14 @@ Gentoo:
interactive_timeout: noarg_present
FreeBSD:
serverpkg: mysql56-server
clientpkg: mysql56-client
serverpkg: mysql57-server
clientpkg: mysql57-client
service: mysql-server
pythonpkg: py27-pymysql
devpkg: mysql56-server
pythonpkg: py37-pymysql
devpkg: mysql57-server
config:
file: /usr/local/etc/my.cnf
file: /usr/local/etc/mysql/my.cnf
sections:
client:
socket: /tmp/mysql.sock
@ -221,7 +221,7 @@ FreeBSD:
# Empty values below to be resolved, disabling the rule in the meantime
# yamllint disable rule:empty-values
user:
datadir:
datadir: /var/db/mysql
# yamllint enable rule:empty-values
socket: /tmp/mysql.sock
skip-external-locking: noarg_present

View file

@ -143,13 +143,29 @@ mysql_initialize:
- pkg: {{ mysql.serverpkg }}
{%- endif %}
{%- if os_family in ['FreeBSD'] and mysql.serverpkg.lower() != 'mariadb-server' %}
mysql_initialize:
file.directory:
- name: /var/log/mysql
- user: mysql
- group: mysql
- mode: '0750'
cmd.run:
- name: /usr/local/libexec/mysqld --initialize-insecure --user=mysql --basedir=/usr/local --datadir={{ mysql_datadir }}
- runas: root
- creates: {{ mysql_datadir }}/mysql/
- require:
- pkg: {{ mysql.serverpkg }}
- file: /var/log/mysql
{%- endif %}
mysqld-service-running:
service.running:
- name: {{ mysql.service }}
- enable: True
- require:
- pkg: {{ mysql.serverpkg }}
{%- if (os_family in ['RedHat', 'Suse'] and mysql.version is defined and mysql.version >= 5.7 and mysql.serverpkg.lower() != 'mariadb-server') or (os_family in ['Gentoo']) %}
{%- if (os_family in ['RedHat', 'Suse'] and mysql.version is defined and mysql.version >= 5.7 and mysql.serverpkg.lower() != 'mariadb-server') or (os_family in ['Gentoo', 'FreeBSD']) %}
- cmd: mysql_initialize
{%- elif os_family in ['RedHat', 'Suse'] and mysql.serverpkg.lower() == 'mariadb-server' %}
- file: {{ mysql_datadir }}