MySQL 8.0.15向8.0.16升级启动失败问题解决

从Oracle的官方源更新MySQL之后发现MySQL无法正常启动了,查看了一下/var/log/mysql.log也异常单一。

2019-04-28T02:59:39.881846Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.16) starting as process 384
2019-04-28T02:59:50.800045Z 4 [System] [MY-013381] [Server] Server upgrade from ‘80015’ to ‘80016’ started.
2019-04-28T02:59:52.461014Z 4 [ERROR] [MY-013384] [Server] Could not create server upgrade info file at ‘/var/lib/mysql/’.
2019-04-28T02:59:52.468088Z 0 [ERROR] [MY-013380] [Server] Failed to upgrade server.
2019-04-28T02:59:52.468307Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-28T02:59:54.080113Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.16) MySQL Community Server – GPL.

早前Oracle出错都能打印出一长串错误日志,这次仅仅留下有 Could not create server upgrade info file at ‘/var/lib/mysql/’ 一句。

查看了一下数据目录,发现此时用于记录当前数据目录版本的mysql_upgrade_info的所有者是root用户:

ls -l /var/lib/mysql
total 2153959
….
-rw-r–r– 1 root root 6 Apr 8 09:17 mysql_upgrade_info
….

显然这造成MySQL启动尝试更新mysql_upgrade_info内容到8.0.16时被没有足够权限。想必是8.0.15的Oracle官方源存在问题,错误得用root用户重写了mysql_upgrade_info,因此造成了问题。

chown mysql:mysql /var/lib/mysql/mysql_upgrade_info
service mysqld restart

运行上述命令后MySQL就可正常完成升级并启动了。如需确认,可以在日志中读到以下内容:

2019-04-28T03:02:15.207177Z 4 [System] [MY-013381] [Server] Server upgrade from ‘80015’ to ‘80016’ started.
2019-04-28T03:02:16.922262Z 4 [System] [MY-013381] [Server] Server upgrade from ‘80015’ to ‘80016’ completed.

猜你喜欢

转载自blog.csdn.net/IT_arookie/article/details/89705675