对于 Ubuntu 12.10 至 14.04(暴发户)

对于 Ubuntu 12.10 至 14.04(暴发户)

我尝试在一些文章中找到描述如何正确启动和停止 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 脚本仅接受startstoprestart- 仅一个字来告诉它要做什么。您无法像尝试的那样为其提供多个参数。

无论如何,简短的回答是,您实际开始工作的方法才是推荐的方法。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

对于 Ubuntu 12.10 至 14.04(暴发户

较新版本的 Ubuntu 使用systemd

启动MYSQL:

sudo start mysql

重新启动MySQL:

sudo restart mysql # The service must be running

停止MySQL:

sudo stop mysql # The service must be running

答案4

我在 Ubuntu64 上遇到了同样的问题,我通过简单地不使用 systemctl 而是使用以下命令解决了该问题:

sudo service mysql restart

希望这个命令对你有用。

相关内容