我尝试在一些文章中找到描述如何正确启动和停止 mysql 服务器的文章。
我找到了这个链接:如何在 Ubuntu 8.04 上启动/停止 MySql 服务器 | Abhi 的博客世界
我运行了这个命令:
/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 服务器已成功启动。太棒了!
那么,其他命令有什么问题?为什么它们会导致错误?
答案1
您的前两个命令未以 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
。您链接到的页面写于 2008 年,因此必须谨慎对待 :)
答案2
还有助于仔细检查“mysql”是否是正确的服务名称。就我而言,它不是。我一直收到以下响应:mysql:运行时无法识别服务
service mysql status
然后我检查了 /etc/init.d 并找到了名为 mysqld 的脚本,其中列出了进程名称:mysqld 和 prog=mysqld
于是我就这么做了
service mysqld status
service mysqld stop
service mysqld start
并且它们都运行良好。
编辑:对于新版本(MySQL 8),使用
service mysql status
service mysql stop
service mysql start
答案3
答案4
我在 Ubuntu64 上遇到了同样的问题,我通过简单地不使用 systemctl 而是使用以下命令解决了该问题:
sudo service mysql restart
希望这个命令对你有用。