MySQL 更新后无法启动

MySQL 更新后无法启动

当我将 MySQL 服务器(位于 /mysql)从 5.1 更新到 5.6 后,它拒绝启动。

权限:

-rwxr-xr-x. 1 mysql mysql 10485760 Dec 29 18:20 ibdata1
drwx---rwx. 2 mysql mysql    16384 Dec 29 15:56 lost+found
drwxr-xrwx. 2 mysql mysql     4096 Feb 23 06:48 mysql
drwx---rwx. 2 mysql mysql     4096 Feb 23 06:48 performance_schema
drwx---rwx. 2 mysql mysql     4096 Feb 23 06:48 test

命令:

service mysqld start
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

日志: http://pastebin.com/yWxSYeWp

我的.cnf:

[mysqld]
datadir=/mysql
socket=/mysql/mysql.sock
user=mysql
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
innodb_buffer_pool_size=4G

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[client]
socket=/mysql/mysql.sock

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

使用 Centos 6.7

答案1

/usr/sbin/mysqld:找不到文件:“./mysql/plugin.frm”(errno:13 - 权限被拒绝)

...

7f498cabd720 InnoDB: 文件操作中发生操作系统错误编号 13。InnoDB: 该错误意味着 mysqld 没有目录的访问权限。

除其他事项外,您似乎存在某种权限问题。您是否以具有足够权限的用户身份启动 mysql ?您是否检查过 /mysql 子目录中文件等的权限以及 /mysql 目录本身的权限?

使用 Centos 6.7

另一种可能性是您正在使用启用了 SELinux 的系统。/mysql 目录是非标准的,因此文件安全上下文可能不正确。您可能也需要更正它们。

semanage fcontext -a -t mysqld_db_t '/mysql(/.*)?'
restorecon -rv /mysql

您可能需要运行 mysql_upgrade 以及另一个错误消息所建议的。

答案2

您的 mysql 数据目录位于非标准位置,并且您的系统有 apparmor,请确保/etc/apparmor.d/usr.sbin.mysqld您的数据目录已列入白名单。配置应如下所示:

/mysql/data/dir/ r, #trailing slash is mandatory
/mysql/data/dir/** rwk,

对配置进行任何更改后,必须重新启动 Apparmor 守护进程。

相关内容