我无法启动 MySQL,出现此错误
[root@server scripts]# service mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]mysql/server.mydomain.com.pid).
我应该怎么办
我没有任何my.cnf
文件
只有这些
/etc/pki/tls/openssl.cnf
/home/monty/.mylogin.cnf
/opt/rightscale/sandbox/openssl.cnf
/root/.mylogin.cnf
/usr/share/doc/MySQL-server-5.6.10/my-default.cnf
/usr/share/mysql/my-default.cnf
/var/lib/mysql/auto.cnf
答案1
在 CentOS 中,您需要复制到/usr/share/doc/MySQL-server-5.6.10/my-default.cnf
并且/etc/my.cnf
您必须根据您的服务器配置在 my.cnf 中进行更改,在 my.cnf 中的每次更改之后都需要重新启动 mysql 服务器。
看来您对 mysql datadir 的权限有问题。运行以下命令
mysql_install_db
此命令将检查你的 mysql 配置并找出错误。完成后
chown -R mysql:mysql /path to your mysql data dir ( default is /var/lib/mysql)
brew service mysql restart
答案2
我在 CentOS 6 上遇到了同样的问题。Abhishek Anand Amralkar 提出了一个很好的建议,因为/etc/my.cnf
在我的系统上安装的 CentOS(由于 anaconda 安装的依赖包 mysql-libs)有以下内容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
该pid-file
参数引用了我的系统上不存在的目录和文件,即使存在,也mysql:mysql
需要授予用户:组编辑它的权限。
所以最重要的是确保你知道你的真实的 my.cnf
文件是 ( cd / ; nice find . -name "my.cnf"
),它是 mysql 运行时实际使用的文件,并且它具有您创建的安装的正确配置。我认为很多 CentOS 用户都被my.cnf
中的这个默认设置绊倒了/etc
。
一个快速的解决方案是:
mv /etc/my.cnf /etc/my.cnf.old
答案3
如果所有当前建议都失败。请确保 /var/lib 具有 775 权限。