[debian-mysql] Bug#837166: mysqld can't find messagefile if mysqld_safe is started by systemd
Thomas DEBESSE
debian at illwieckz.net
Fri Sep 9 16:26:16 UTC 2016
Package: mysql-server-5.6
Version: 5.6.30-1~bpo8+1
Hi, I just installed mysql-server this way:
# apt-get install -t jessie-backports mysql-server
It was a fresh install with no prior mysql-server installation.
At startup, the mysql server shutdowns itself printing these messages
in /var/log/mysql/error.log:
2016-09-09 17:15:01 7042 [ERROR] Can't find messagefile
'/usr/share/mysql/errmsg.sys'
2016-09-09 17:15:02 7042 [ERROR] Aborting
It always does that if I start mysql-server the systemd way:
root at podocarpe:/root
# systemctl start mysql
I noticed that it also prints some related warnings in /var/log/mysql/error.log:
2016-09-09 17:34:41 0 [Warning] The syntax '--language/-l' is
deprecated and will be removed in a future release. Please use
'--lc-messages-dir' instead.
I noticed that even if I add some lc-messages-dir explicit parameters, it fails:
# cat /etc/mysql/mysql.conf.d/zz_language.cnf
[mysqld]
lc_messages_dir = /usr/share/mysql/french/
>From /var/log/mysql/error.log:
2016-09-09 17:42:20 13072 [ERROR] Can't find messagefile
'/usr/share/mysql/french/errmsg.sys'
And of course this file exists.
I noticed that if I copy this file to /usr/share/mysql/errmsg.sys and
do not use that lc-messages-dir trick, mysqld complains to not being
able to find it even if it exists for real (same is I use the english
errmsg.sys).
I noticed that if I start the server by hand, this way (and even
without that lc-messages-dir trick):
# /usr/bin/mysqld_safe
It works!
What is curious is systemd tries to start mysql-server the same way:
# grep mysqld_safe /lib/systemd/system/mysql.service
ExecStart=/usr/bin/mysqld_safe
So, I can start /usr/bin/mysqld_safe by hand on an interactive shell,
but systemd can't.
So, the current mysql-server package in jessie-backports can't be
started by systemd.
--
Thomas DEBESSE
More information about the pkg-mysql-maint
mailing list