说明:红色字体是对方的说明

  黑色字体是自己的回答

 ×××背景为自己的解决思路。

 

作为刚入门DBA菜鸟,可能问题解决的并不高效,可能有更好的发现问题的方法,欢迎各位专家们指出,不胜感激~

 

【现象】对方说mysql有以下状况:

/etc/init.d/mysql stop 能把mysql停了,但/etc/init.d/mysql start 起不来,可用/usr/bin/mysqld_safe &能启动数据库

 

【问题解决过程】:

/etc/init.d/mysql start   启动的时候会提示什么呢?  看下$datadir/error.log

 

怀疑是service mysql start 失效,可能用二进制安装的。

嗯,我猜应该是二进制安装的把?

rpm

  以前该服务器上安装过mysql吗?

我用rpm 卸载了

 

排除是二进制安装,并且得知以前有rpm安装的痕迹

 

  看下error.log

日志是空的。但启动的时候,出来“Starting MySQL.The server quit without updating PID file (/home/mysql/mysql.pid).[FAILED]

 

怀疑是配置文件的问题,因为没有错误日志,八成与配置文件有关

/etc/my.cnf这个文件吗?

传了一个my.cnf文件给我

看了下传过来的配置文件,发现里面datadirlog都指了正确的位置,想确认下mysqld_safe &启动后,datadir的位置是否应用了配置文件里的位置。

 

ps -ef | grep mysql  看下有没有mysql的进程   如果有先停下 

   模拟一次mysqld_safe &    看下error.log的记录

mysql刚才用/etc/init.d/mysql 停了。我现在用mysqld_safe启动下

进入mysql  看下datadir所在的位置,看下是/home/mysql/下吗?

mysql 进入   show variables like '%datadir%';

mysql> show variables like '%datadir%';

+---------------+--------------+

| Variable_name | Value |

+---------------+--------------+

| datadir | /home/mysql/ |

+---------------+--------------+ 

 

可以确认配置文件没有问题,问题应该出在/etc/init.d/mysql 这个脚本上,上网找到了rpm包安装后这个启动脚本的默认路径,让对方尝试下重新cp一个到/etc/init.d/mysql上,经过测试,问题解决

试下cp /usr/share/mysql/mysql.server /etc/init.d/mysql  再通过/etc/init.d/mysql   start启动下

OK了

 

【问题原因】:

  应该是/etc/init.d/mysql   这个是你卸载之前的版本

所以现在不能使用了