我尝试在一些描述如何正确启动和停止mysql服务器的文章中找到。

我找到了此链接:如何在Ubuntu 8.04上启动/停止MySql服务器| Abhi的Blogging世界

我运行了以下命令:

/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服务器成功启动。凉!

那么,其他命令怎么了?为什么它们会导致错误?

评论

实际上,即使使用sudo也不适合我,但随后我在脚本中发现了以下提示:与其通过/etc/init.d调用初始化脚本,不如使用service(8),这样就可以了。

蒂姆是正确的。使用sudo服务mysql start。

通常,您可以使用sudo -l查看允许您的特定系统上的特定用户使用sudo做什么。 (您的权限在/ etc / sudoers中配置。)但是我不确定在这种情况下是否有帮助。编辑:等等,没关系,访问被拒绝的错误看起来像是来自MySQL之类的东西,而不是sudo。

#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的习惯。您链接的页面已经3岁了,所以必须撒些盐:)

评论


也可以尝试sudo service mysql start

–user108762
2012年11月17日12:45

启动mysql对我有用(Ubuntu 12.04.4)。

– Tim
2014年5月12日在7:28

sudo /etc/init.d/mysql restart对我来说重启了MySQL

–爱德华
16年7月13日在20:23

sudo systemctl如何为Ubuntu 16.04及更高版本启动mysql?

– Ankit Balyan
17年2月2日,下午3:16

这仍然对我在ubuntu 18上起作用

–刘易斯
20年8月28日在7:34

#2 楼

还有助于仔细检查“ mysql”是正确的服务名称。就我而言不是。我一直得到以下响应:mysql:运行时无法识别的服务
service mysql status 


然后我检查了/etc/init.d并找到了名为mysqld的脚本,其中列出了进程名称:mysqld和prog = mysqld

所以我做了

service mysqld status
service mysqld stop
service mysqld start 


,它们都工作正常。

评论


mysql:无法识别的服务

–绿色
13年7月20日在1:06

至少在13.10上,您需要使用root特权运行它。例如,“ sudo服务mysql状态”。

–布莱斯
2014年4月4日5:09

对于14.10,我需要使用“ mysql”而不是mysqld

– redanimalwar
14-10-23在1:39

如果没有root权限运行,则会显示未知作业:mysql。有点混乱。

– phil294
16 Mar 20 '16在15:55

无法启动mysqld.service:找不到单元mysqld.service。

– JCarlosR
17年11月23日在23:54

#3 楼

对于Ubuntu 12.10到14.04(Upstart)
较新版本的Ubuntu使用systemd。
启动MYSQL:
sudo start mysql

重新启动MYSQL:
sudo restart mysql # The service must be running

停止MYSQL:
sudo stop mysql # The service must be running


评论


停止:未知作业:mysql

–绿色
13年7月20日在1:07

@Green我刚刚尝试了此方法(一年后),它仍在工作。这是我的结果:mysql停止/等待。您必须知道您必须已经在运行mysql才能停止它;)

– Lucio
13年7月24日在22:45



英雄,您救了我的命,那mysqld已经占据了我的机器内存这么长时间了。我尝试了各种方法将其删除,但都失败了,直到遇到您的答案。

–禅
2014年9月2日下午13:07

sudo:开始:找不到命令

– JCarlosR
17年11月23日在23:55

@JCarlos要做安装新贵

–爱德华
17年12月28日在17:06

#4 楼

实际上,当我在Ubuntu计算机上安装mysql-workbench时,出现了一个奇怪的错误。之后,我尝试使用以下命令启动mysql服务:

service mysql start


所以我得到了未安装MySQL服务器的解决方案,因此我安装了它,并且遇到了问题解决了。安装mysql-server的命令是:

sudo apt-get install mysql-server


成功安装后,以以下方式启动MySQL服务器:

service mysql start


#5 楼

我在Ubuntu64上也遇到了同样的问题,我通过不使用systemctl来解决了这个问题,而是使用了以下方法:

sudo service mysql restart


希望此命令对您有用。

#6 楼

在您的系统上安装MySQL之后,只需执行以下操作:


$ service mysql status


如果service down只是这样做:


$ service mysql start


并用于停止我的服务,即:


$ service mysql stop


评论


/etc/init.d/mysql start和service mysql start完全相同。

–风暴
17年7月26日在8:55

#7 楼

这应该适用于手动构建的mysql服务器:

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql


#8 楼

在ubuntu 18.04上,套接字是在文件中定义的

 /etc/mysql/mysql.conf.d/mysqld.cnf

 socket     = /var/run/mysqld/mysqld.sock


该目录不存在,所以我手动创建了它,如下所示:

sudo mkdir -p /var/run/mysqld

重新启动mysql。这为我的情况解决了。

评论


我的情况绝对是这样!只好做一个目录。

– Shaze
20-04-28在13:34

#9 楼

我对相同的问题感到震惊,并通过以下命令重新卸载并安装:

1)sudo apt-get --purge删除mysql-server mysql-common mysql-client

2)sudo apt更新&& sudo apt dist-upgrade && sudo apt autoremove

3)sudo apt-get install -y mysql-server mysql-client

#10 楼

涵盖这两种情况的小脚本[服务器正在运行/服务器未运行]:

#!/bin/bash

service mysql restart
if [ "$?" != "0" ]; then
  service mysql start
fi