在安装完mysql 5.5后,我将数据目录更改为另一个文件夹,并修改了my.cnf中的相关配置。这很简单,但是即使重新安装或不更改数据目录,mysql也无法启动。
错误日志没有任何有用的信息,所以我找不到任何原因。
111207 16:28:02 mysqld_safe 使用来自 /var/lib/mysql 的数据库启动 mysqld 守护进程 111207 16:28:02 mysqld_safe mysqld 从 pid 文件 /var/lib/mysql/localhost.localdomain.pid 结束
但是如果我使用该命令作为启动脚本,mysql 就可以正常启动。
/usr/bin/mysqld_safe --datadir=/data/mysql/ --pid-file=/data/mysql/localhost.localdomain.pid > /dev/null 2>&1
更奇怪的是,我用/usr/share/mysql/mysql.server启动代替/etc/init.d/mysql启动,mysql 也可以正常启动,而且这两个文件是一样的。所以最后我只好用cp -l /usr/share/mysql/mysql.server /etc/init.d/mysql来修复这个问题。
我真的想知道为什么以及是否有更好的解决方案!
答案1
如果没有看到原始 init.d 脚本的内容就很难说,但上面的错误消息看起来好像它仍然在默认的 /var/lib/mysql 中查找数据目录。
也许数据目录在 init.d 脚本中是硬编码的,或者 init.d 脚本可能在您意想不到的地方寻找 my.cnf(因发行版而异)。