问题描述
我试图在一些描述如何正确启动&停止mysql服务器。
我发现这个链接:How to start/stop MySql server on Ubuntu 8.04 | 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来停止/启动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
他们都很好。
第三种解决方案
对于Ubuntu 12.10和更高版本:
START MYSQL:
sudo start mysql
RESTART MYSQL:
sudo restart mysql # The service must be running
停止MYSQL:
sudo stop mysql # The service must be running
第四种方案
实际上,当我在我的Ubuntu机器上安装mysql-workbench时,出现了一个奇怪的错误。之后,我尝试使用以下命令启动mysql服务:
service mysql start
所以我得到了MySQL服务器没有安装的解决方案,所以我安装了它并解决了我的问题。安装mysql-server的命令是:
sudo apt-get install mysql-server
安装成功后,以如下方式启动MySQL服务器:
service mysql start