我试图在一些文章中找到描述如何正确启动&停止mysql服务器。
我找到了这个链接。如何在Ubuntu 8.04上启动/停止MySql服务器|Abhi's Blogging World 。
我运行了这个命令。
/etc/init.d/mysql start
但我看到这个错误
ERROR 1045 (28000) Access denied for user....
在我尝试了这个命令之后。
sudo /etc/init.d/mysql start
我输入了我的密码,又一次看到了同样的错误。
下一个命令。
sudo /etc/init.d/mysql - root -p start
结果是。
ERROR 1049 (42000) Unknown database 'start'.
而当我运行这个命令时。
sudo service mysql start
MySQL服务器成功启动。爽啊!
那么,其他命令有什么问题呢?为什么它们会导致错误?
你的前两个命令没有以root身份运行,所以这是预期行为。你需要以root身份来停止/启动mysql。
然而。
sudo /etc/init.d/mysql start
应该是有效的。确实如此,对我来说。
kojan:~> sudo /etc/init.d/mysql restart
[sudo] password for chris:
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
我使用了重启而不是启动,因为它已经在运行了,但效果是一样的。你确定你的密码输入正确吗?)你有没有编辑过你的sudo配置,从而使其停止工作?
这个...
sudo /etc/init.d/mysql - root -p start
参数是错误的。init.d脚本只接受start
或stop
或restart
--只有一个词告诉它要做什么。你不能像你想的那样给它多个参数。
总之,简短的回答是你实际得到的工作,是推荐的方法。随着时间的推移,service
正在取代所有的init.d脚本,所以你应该养成使用service
的习惯。你链接的页面是3年前的,所以必须要注意一些问题:)
也有助于仔细检查"mysql"是正确的服务名称。在我的情况下,它不是。我一直得到以下回应:mysql:运行时未被识别的服务
service mysql status
然后我检查了/etc/init.d,发现名为mysqld的脚本,其中列出了进程名称:mysqld和prog=mysqld
所以我就做了
service mysqld status
service mysqld stop
service mysqld start
而他们都能正常工作。