当我将 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 守护进程。