上午刚装完 MySQL,启动时报如下错误:
Starting MySQL.Manager of pid-file quit without updating file.[FAILED]
依次尝试了从谷姐找到的各种方法,发现只要执行如下 MySQL 初始化命令即可解决:
1
|
/usr/local/mysql/bin/mysql_install_db --user=mysql
|
下面附上从谷姐找到的解决此问题的方法集锦,也许每个人遇到的问题的原因会不一样,经供参考:
一、查看报错日志
报错日志是我们解决问题的方向灯,没有方向灯我们就没了方向。
我有次安装时报错日志里就有这样的错误:
1
|
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libstdc++.so.5: cannot open sharedobject file: No such file or directory
|
很明显是缺少了库文件 libstdc++.so.5 ,这时我们搜索和 libstdc 相关的包安装即可。
二、也许是 selinux 惹的祸
如果是 centos 系统,默认会开启 selinux,这个时候可以先关闭它,打开/etc/selinux/config,把 SELINUX=enforcing 改为 SELINUX=disabled 后存盘退出重启机器试试。
三、残余数据
也有可能是第二次在机器上安装 mysql,有残余数据影响了服务的启动,去 mysql 的数据目录/data 看看,如果存在 mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
四、确定数据目录的权限
数据目录一般是<prefix>/data,检查一下它的归属,如果不是 mysql 所有者,一般安装 mysql 时都会创建 mysql 的用户和组的,这时要修改一下用户和组:
chown -R mysql:mysql /var/data
五、没有指定数据目录
mysql 在启动时没有指定配置文件时会使用/etc/my.cnf 配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。如果没有请在[mysqld]下设置这一行:
datadir = /usr/local/mysql/data
六、还有 mysql 进程在跑着
如果这是第二次在机器上安装 mysql 就极有可能会出现这种情况的,这时系统上很有可能还有 mysql 进程在运行着。可以执行下列命令查看:
ps -ef | grep mysql
如果出现的结果不止一行的就赶快把它 kill 掉吧。
七、skip-federated 字段在作祟
可以检查一下/etc/my.cnf 文件中有没有没被注释掉的 skip-federated 字段,如果有就立即注释掉吧。
八、出错日志目录不存在
也有可能你现在还不知道 mysql 的出错日志在哪里吧?这时你可以执行命令查看:
1
2
|
cd mysql/bin
./mysql_safe
|
这时一定会报错的, 并在错误中显示将错误写在某某目录的某某文件里了,这里检查一下这个目录和文件是否在,在的话就按日志指示解决,如果没有的话就要创建目录并修改权限和归属了。一般会是/var/lib/mysql/mysql.error,注意 mysql.error 不用创建的。
1
2
3
4
|
cd /var/lib
mkdir mysql
chmod 777 mysql
chown mysql:mysql mysql
|
这时再试试吧。如果还是不行的话就留言让大家帮你看看吧……
以上摘自Angel Sanctuary
九、可能是 data/mysql-bin.index 在作怪
前因:因为硬盘满了,mysql 启动不起来了。登录上去看了一下,发现原因。删除 mysql 的日志文件,重启 mysql 发现错误:Starting MySQL.Manager of pid-file quit without updating file.[FAILED]
网上有不少这个原因的解释,但是都不是我想说的。我要说的原因其实很白痴:data/mysql-bin.index 没有删除,data/mysql-bin.index 是存放日志文件索引的文件,只删除了日志文件而没有对日志的索引文件做处理显然是不行的。
删除 data/mysql-bin.index 文件,再 service mysqld start 就可以了。