MySQL报错Couldn’t find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)

之前博客运行在BuyVM OpenVZ 128m的vps上,运行环境是lnmp.org提供的一键安装包,版本0.8。昨天把博客换到BuyVM KVM的vps上面,并且把一键安装包升级到了0.9。今天重启vps之后mysql死活起不来,执行/etc/init.d/mysql start,错误信息为:

Couldn’t find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)

错误信息很明显,因为lnmp.org提供的一件安装包是默认mysql是装在/usr/local/mysql下面的。我的my.cnf没有问题,因为检查发现之前openvz下面的mysql无论版本还是配置和这台kvm的vps并没有差别。这样解决方案很简单,在/usr/bin下面建个软链或者手工启动mysql都行。但是我还是打算看看启动脚本到底哪出了问题。

根据输出的错误信息很快定位到$bindir变量赋值有问题。经过多次调试把问题定位在下面的脚本上:

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

这条命令的作用就是解析后面几个参数的值。从哪解析呢?parse_server_arguments命令有如下说明:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

逐个查找这几个配置文件,发现KVM的vps里居然有/etc/mysql/my.cnf。果断删除了/etc/mysql目录,问题解决了。其实这里很奇怪,这个目录一般是系统默认安装的mysql存放配置文件的地方,但是我给KVM的vps装系统的时候没有选择MySQL Server选项。

希望我这个个案对于到同样错误的童鞋能有帮助。


你可能感兴趣的:(linux服务器搭建)