如何启动/停止mysql服务器?


211

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

我找到了此链接:如何在Ubuntu 8.04上启动/停止MySql服务器。阿披的博客世界

我运行了以下命令:

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

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


3
实际上,即使使用sudo也不适合我,但是后来我在脚本中找到了以下提示:与其通过/etc/init.d调用初始化脚本,不如使用service(8),这没关系
Timofey

2
蒂姆是正确的。使用sudo服务mysql start
Ed Manet 2013年

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

Answers:


230

您的前两个命令不是以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年历史,因此必须撒些盐:)


7
也尝试sudo服务mysql start

2
start mysql为我工作(Ubuntu 12.04.4)。
蒂姆(Tim)

3
sudo /etc/init.d/mysql restart为我重启了MySQL
Edward

6
有关如何sudo systemctl start mysql为Ubuntu 16.04和最多?
Ankit Balyan

86

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

service mysql status 

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

所以我做了

service mysqld status
service mysqld stop
service mysqld start 

他们都工作正常。


4
mysql: unrecognized service
绿色

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

13
对于14.10,我需要使用“ mysql”而不是mysql d
redanimalwar 2014年

1
如果没有root权限运行,则会说unknown job: mysql。有点混乱。
布劳伦

Failed to start mysqld.service: Unit mysqld.service not found.
JCarlos '17

30

对于Ubuntu 12.10及更高版本:

启动MySQL:

sudo start mysql

重新启动MySQL:

sudo restart mysql # The service must be running

停止MYSQL:

sudo stop mysql # The service must be running

3
stop: Unknown job: mysql
绿色,

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

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

sudo: start: command not found
JCarlos '17

1
@JCarlos Doapt install upstart
Edward

9

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

service mysql start

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

sudo apt-get install mysql-server

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

service mysql start

4

我在Ubuntu64上也遇到了同样的问题,并且通过不使用systemctl而是通过以下方式解决了该问题:

sudo service mysql restart

希望该命令对您有用。



2

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

$服务mysql状态

如果服务中断只是这样做:

$服务mysql启动

并停止我的服务:

$服务mysql停止


1
/etc/init.d/mysql startservice mysql start完全一样。
风暴

1

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

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


0

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

#!/bin/bash

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

0

在Ubuntu 18.04上,套接字在文件中定义

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

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

该目录不存在,因此我如下手动创建它:

sudo mkdir -p /var/run/mysqld

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.