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选项。
希望我这个个案对于到同样错误的童鞋能有帮助。
好久没有更新了
128M太小了,我的512M都嫌不够呢
博客时间是2点~~~我是来看时间的~
mark~~~~哈哈哈,新年快乐~
我回来了……博客有毛病,有空帮我看看咋回事
是不是有多个配置文件重复了?
嗯,加载了2次配置文件,后面的配置覆盖了前者。