ps_tokudb_admin script fails after upgrade to PS 5.7
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
Invalid
|
Undecided
|
Unassigned | |||
5.6 |
New
|
Undecided
|
Unassigned | |||
5.7 |
New
|
Undecided
|
Unassigned |
Bug Description
When executing ps_tokudb_admin --enable after upgrading Percona Server from version 5.6 to 5.7.17, it fails with the following error:
ERROR 1146 (42S02) at line 1: Table 'performance_
ERROR: Pid file location unknown!
Documentation says (https:/
1. Upgrade Percona Server from 5.6 to 5.7.17
2. Execute ps_tokudb_admin --enable
[root@red-hat7 ~]# ps_tokudb_admin --enable -u root -p
Checking SELinux status...
INFO: SELinux is in permissive mode.
ERROR 1146 (42S02) at line 1: Table 'performance_
ERROR: Pid file location unknown!
3. After this error it's necessary to execute first mysql_upgrade and then ps_tokudb_admin:
[root@red-hat7 ~]# mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_
mysql.innodb_
mysql.ndb_
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_
mysql.slave_
mysql.slave_
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_
mysql.time_
mysql.time_
mysql.time_
mysql.user OK
Upgrading the sys schema.
Checking databases.
sys.sys_config OK
Upgrade process completed successfully.
Checking if update is needed.
[root@red-hat7 ~]# ps_tokudb_admin --enable -u root -p
Checking SELinux status...
INFO: SELinux is in permissive mode.
ERROR 1682 (HY000) at line 1: Native table 'performance_
ERROR: Pid file location unknown!
[root@red-hat7 ~]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
[root@red-hat7 ~]#
[root@red-hat7 ~]#
[root@red-hat7 ~]# ps_tokudb_admin --enable -u root -p
Checking SELinux status...
INFO: SELinux is in permissive mode.
Checking location of jemalloc library ...
INFO: Using jemalloc library from /usr/lib64/
Checking transparent huge pages status on the system...
INFO: Transparent huge pages are currently disabled on the system.
Checking if THP_SETTING variable is set to never or madvise in /etc/sysconfig/
INFO: Variable THP_SETTING is not set to never or madvise in /etc/sysconfig/
Checking if LD_PRELOAD variable is set for libjemalloc.so.1 in /etc/sysconfig/
INFO: Variable LD_PRELOAD for libjemalloc.so.1 is not set in /etc/sysconfig/
Checking TokuDB engine plugin status...
INFO: TokuDB engine plugin is installed.
Adding LD_PRELOAD variable into /etc/sysconfig/
INFO: Successfully added LD_PRELOAD variable for libjemalloc.so.1 into /etc/sysconfig/
PLEASE RESTART MYSQL SERVICE AND RUN THIS SCRIPT AGAIN TO FINISH INSTALLATION!
tags: | added: pkg |
Changed in percona-server: | |
assignee: | nobody → Hrvoje Matijakovic (hrvojem) |
Changed in percona-server: | |
assignee: | Hrvoje Matijakovic (hrvojem) → nobody |
There is a difference between ps_tokudb_admin in 5.6 and 5.7. In 5.7 on CentOS 7 tokudb settings are put into /etc/sysconfig/ mysql instead of my.cnf like 5.6. This is why TokuDB storage engine needs to be re-enabled after upgrade.
Possible solution would be for ps_tokudb_admin to add tokudb setting in /etc/sysconfig/ mysql for 5.6 on CentOS 7 as well. This shouldn't have any issues for 5.6 as this file isn't being used by mysqld_safe, but should avoid additional steps of re-enabling the tokudb after 5.6 -> 5.7 upgrade on CentOS 7.