正在启动 MySQL。错误!pid 文件管理器退出,未更新文件。

正在启动 MySQL。错误!pid 文件管理器退出,未更新文件。

我在 CentOs v5.6 上。当尝试启动 mysql 时,出现以下错误

Starting MySQL. ERROR! Manager of pid-file quit without updating file.

在 /var/log/mysqld.error.log 中我有以下内容

130319 03:39:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130319  3:39:04 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
130319  3:39:04 [Warning] '--log' is deprecated and will be removed in a future release. Please use ''--general_log'/'--general_log_file'' instead.
130319  3:39:04 [Note] Plugin 'FEDERATED' is disabled.
^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
130319  3:39:04 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130319  3:39:04  InnoDB: Initializing buffer pool, size = 8.0M
130319  3:39:04  InnoDB: Completed initialization of buffer pool
130319  3:39:04  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
130319 03:39:04 mysqld_safe mysqld from pid file /var/lib/mysql/ip-10-144-82-28.pid ended

请帮忙谢谢

答案1

查看日志,它看起来像是文件权限问题 -

“该错误意味着 mysqld 没有该目录的访问权限”

检查 var/lib/mysql 目录的所有权:

ls -ld /var/lib/mysql
drwxr-xr-x 8 mysql mysql 4096 Dec 11 12:34 /var/lib/mysql

输出必须显示“mysql mysql”所有权和至少“drwxr-xr-x”(755)权限

如果权限不正确,请授予:

chown mysql.mysql /var/lib/mysql
chmod 755 /var/lib/mysql

然后,

卸载 RPM(仅限全新安装,且没有任何 mysql 数据时。如果不是全新安装,请改为执行 rpm -Uvh)删除 /var/lib/mysql/ 目录的所有内容重新安装 RPM,检查安装 RPM 后是否创建了 /var/lib/mysql/mysql/plugin.frm

然后启动服务 mysql 并查看日志。

答案2

/usr/sbin/mysqld: 找不到文件:'./mysql/plugin.frm' (errno: 13)
130319 3:39:04 [错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。

确保所有“mysql”数据库文件都在 /var/lib/mysql/mysql/... 或者直接运行 mysql_upgrade -p[password]

130319 3:39:04 InnoDB:文件操作中出现操作系统错误编号 13。InnoDB:此错误表示 mysqld 没有目录的访问权限。InnoDB:文件名 ./ibdata1 InnoDB:文件操作调用:'open'。

如前所述,mysql 无法写入 /var/lib/mysql/ibdata1 文件。

确保用户 mysql 正在运行,并且可以在那里写入。

答案3

如果这是 Centos / RHEL 或其他启用了 selinux 的发行版,则这可能是罪魁祸首。

如果是这种情况,请暂时禁用 selinux 并查看是否有效。

echo 0 > /selinux/enforce

如果问题出在 SElinux 上,那么您应该监视 audit.log 并使其正常工作(检查:MySQL 5.6 和 SELinux 正在争论

您也可以永久禁用它在/etc/sysconfig/selinux中将强制执行改为允许或禁用。

相关内容