这种情况有时会发生,虽然可能有几个不同的问题导致mysql无法启动,但我将在这里列出一些我所知道的最常见的问题:
注意 - 因为解释了最常见的问题,我假设您已经尝试过删除和安装,或者仅仅重新安装mysql服务,如下所示:
安装 -
sudo apt-get install mysql-server mysql-client
卸载 -
sudo apt-get remove mysql-server mysql-client
清除(删除文件+配置)-
sudo apt-get purge mysql-server mysql-client
重新安装 -
sudo apt-get install --reinstall mysql-server mysql-client
1.
my.cnf
文件不在默认目录中。它应该(默认情况下)位于/etc/my.cnf
或/etc/mysql/my.cnf
。
2. 硬盘上存储mysql数据文件的空间不足。如果数据库变得太大并占用了硬盘的100%,服务将会失败。
3. 升级后,请检查
my.cnf
文件是否放置在正确的位置。根据您是如何进行升级以及从哪个版本进行升级,它可能位于之前提到的
/etc/my.cnf
或
/etc/mysql/my.cnf
。还要记住,该文件也可以命名为
mysql.conf
而不仅仅是
my.cnf
。这种情况通常发生在您从
mysql.com下载二进制文件的情况下。
4. 运行
dmesg
命令查看mysql服务抛出的错误消息有助于确定加载错误的原因。它可能还会说明为什么会发生这种情况。如果您在终端中只输入
dmesg
,它将显示所有信息。我们想要的是关于mysql的信息,所以可以像这样执行:
dmesg | grep mysql
,这将显示包含mysql的所有行。
5. 检查
my.cnf
或
mysql.conf
文件是否正确。在12.04版本中,MySQL的版本是5.5,在11.10版本中,它是5.1。配置文件可能有一些更改(我没有实际检查过),听起来可能很愚蠢,但确实可能会引发一些问题。
6. 与
套接字问题相关的错误通常是由于
my.cnf
或
mysql.conf
文件指向错误位置造成的,错误通常显示为:
无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器
这个问题的另一个来源与
/etc/init.d
目录中的
mysql
文件有关,它可能指向错误的文件夹,因为它可能使用的是旧版本的脚本而不是系统上实际所需的脚本(可能没有正确更新、未覆盖配置文件等)。因此,只需编辑这两个文件中的任何一个,然后执行
sudo service mysql restart
以检查是否解决了问题。
7. 要查看mysql的特定错误输出,请执行以下操作:
cat /var/log/mysql.err
- 将显示mysql的错误。如果您看到太多信息飞过,可以像这样使用cat /var/log/mysql.err | less
,因为less
将帮助您浏览cat
的输出。
cat /var/log/mysql.log
也是一样。如果在那里看到错误,将其放在问题或评论中可能有助于更快地回答。
8. 如果您遇到连接问题并且服务实际上正在运行,请尝试查看服务器防火墙是否允许通过3306端口进行连接(入站连接)。然后检查路由器(如果适用)是否已阻止3306端口。基本上,进行网络测试以确定与mysql分配的端口相关的问题的来源。
如果一切正常,要测试mysql服务是否正在运行,请输入以下命令:service mysql status
作为最后的尝试。如果您正在运行mysql但无法登录,请尝试以下操作:
停止MySQL服务器:
sudo /etc/init.d/mysql stop
或 sudo service mysql stop
手动以手动配置方式启动mysqld
服务
sudo mysqld --skip-grant-tables &
(记得添加&,否则您将需要打开另一个终端窗口。& 将进程发送到后台,您可以使用同一终端窗口杀死进程)。
以ROOT身份登录mysql数据库
mysql -u root mysql
用您的新密码替换下面的内容
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
这应该足够让您再次以root身份登录到您的Mysql服务。希望能对您有所帮助。
sudo rm /etc/mysql/ -R
- 在我的情况下它根本不存在。无论如何 - 幸运的是,这只是一个用来测试WordPress的本地安装...不知道在真实服务器上会发生什么 o_O - radekapt-get update
,因为它会移除dovecot和php5-mysql。只有在更新后我才能重新安装它们。一旦我完成了这些步骤,一切又恢复正常了。 - AntonChanningsudo apt-get purge mysql-server-5.5
,然后sudo apt-get install mysql-server
。我甚至没有丢失任何数据库!太棒了! - Nostalg.io