尝试从命令行登录 MySQL 时出现此错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)
我认为这意味着 MySQL 尚未启动。所以我尝试启动它:
sudo /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
* Starting MySQL database server mysqld [fail]
Run Code Online (Sandbox Code Playgroud)
我在哪里查看/我该怎么做才能启动 MySQL?我正在运行 Ubuntu 8.04 并通过 apt-get 安装了 MySQL。我已经能够开始使用它并使用它几次,所以我不知道它为什么停止工作。
更新:运行 sudo /etc/init.d/mysql status 时,我收到消息:
* MySQL is stopped.
Run Code Online (Sandbox Code Playgroud)
更新 #2:我的日志文件(/var/log/mysql.log 和 /var/log/mysql.err)是空的(如果这些是正确的)
Kyl*_*ots 10
在 Ubuntu 12.04 上,我在 /etc/mysql/my.cnf 文件中更改缓冲区大小后遇到了同样的问题,我想我有点忘乎所以。无论如何,在尝试将它们改回默认设置后,MySQL 仍然无法启动。
我尝试了几种不同的方法来解决它,我确实注意到 /var/run/mysql/mysql.sock 丢失了。这可能是一个问题,因此您可以检查那里,如果它丢失,您可以通过执行以下操作来替换它:
sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
这并没有解决我的问题!但它可能对某些人来说。
我必须做的是完全重新安装 MySQL,为此您需要使用 sudo 命令。彻底删除和重新安装MySQL的步骤如下:
删除 MySQL
sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common
Run Code Online (Sandbox Code Playgroud)
您可以选择使用 aptitude,将apt-get --purge替换为aptitude
清理
sudo apt-get autoremove
sudo apt-get autoclean
Run Code Online (Sandbox Code Playgroud)
删除 MySQL 目录
sudo rm -rf /etc/mysql
Run Code Online (Sandbox Code Playgroud)
安装 MySQL
sudo apt-get install mysql-server mysql-client
Run Code Online (Sandbox Code Playgroud)
MySQL现在应该正在运行,您可以通过执行以下操作来检查:
sudo service mysql status
Run Code Online (Sandbox Code Playgroud)
你应该看到
mysql start/running, process xxxxx
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助,并认为我可能会在执行此操作后添加所有仍然可用的数据库和表,但是我确实必须为这些数据库重新创建用户和密码。
注意:如果你有 php 的 mysql 扩展,你也需要重新安装它。
sudo apt-get install php5-mysql
Run Code Online (Sandbox Code Playgroud)