最近搞mysql出了一大堆问题,今天分析一下 service mysql start 不能启动mysql的原因
原因:mysqld_safe启动脚本默认的从/usr/local/mysql目录中读取另外一个启动脚本mysqld
但是我后来把安装目录改了,没有安装在/usr/local/mysql下,而是自己新建了安装目录 /opt/module/mysql
原因找到了如何解决?我在这里写一下我的解决历程:和一些过程中的报错:
解决方案如下:
第一步:查看my.cnf的目录是否为实际安装目录
sudo vim /etc/my.cnf
不是的话就修改为实际安装的目录
第二步:将mysqld_safe中的所有/usr/local/mysql目录改为自己实际的安装目录
进入mysql/bin目录下编辑mysqld_safe
cd /opt/module/mysql/bin/
vim mysqld_safe
将里面所有的/usr/local/mysql 换成 /opt/module/mysql(就是你的实际安装目录)
:%s#/usr/local/mysql#/opt/module/mysql#
这样就将mysqld_safe的默认目录改为你的实际安装目录启动了
但是 报错
my_print_defaults: command not found
/etc/init.d/mysql: line 264: cd: /usr/local/mysql: No such file or directory
Starting MySQLCouldn't find MySQL server (/usr/local/mysql/[失败]sqld_safe)
发现 /etc/init.d/mysql文件报错
第三步:编辑/etc/init.d/mysql,找到start模块,添加--user=root到mysqld_safe
vim /etc/init.d/mysql
保存退出
使用service mysql start 开启mysql服务
但是又发现报错:Starting MySQL.The server quit without updating PID file (/[失败]sqld/mysqld.pid)
我的解决方案是 用 sudo service msyql start 就可以直接启动了
至于最后面需要加sudo的原因可能因为我的用户不是root所以需要加sudo吧。后面有其他问题再补充
大家有问题可以一起交流,初学乍道,边学边摸索。