当我尝试从命令行登录 MySQL 时出现此错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我认为这意味着 MySQL 尚未启动。因此我尝试启动它:
sudo /etc/init.d/mysql start
我收到这条消息:
* Starting MySQL database server mysqld [fail]
我应该在哪里查看/做什么才能启动 MySQL?我正在运行 Ubuntu 8.04 并通过 apt-get 安装了 MySQL。我已经能够启动它并使用了几次,所以我不知道为什么它停止工作了。
更新:运行 sudo /etc/init.d/mysql status 时我收到消息:
* MySQL is stopped.
更新 #2:我的日志文件(/var/log/mysql.log 和 /var/log/mysql.err)是空的(如果这些是正确的)
答案1
在 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
这确实不是帮我解决问题!但对某些人来说可能就没那么好了。
我要做的是完全重新安装 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
您也可以选择使用 aptitude,方法是替换apt-get --purge和资质
清理
sudo apt-get autoremove
sudo apt-get autoclean
删除 MySQL 目录
sudo rm -rf /etc/mysql
安装 MySQL
sudo apt-get install mysql-server mysql-client
MySQL 现在应该正在运行,您可以通过执行以下操作来检查:
sudo service mysql status
你应该看到
mysql start/running, process xxxxx
希望这会有所帮助,并且我认为在完成此操作后我的所有数据库和表仍然可用,但是我必须为这些数据库重新创建用户和密码。
注意:如果您有 php 的 mysql 扩展,您也需要重新安装它。
sudo apt-get install php5-mysql
答案2
警告:这很危险,你的 mysql 将不安全,任何人都可以连接、编辑等你的表,不要使用此命令运行你的服务器。
尝试以安全模式启动它:/usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables
如果此操作有效,则您的 information_schema 或 mysql 表可能有问题。如果此操作无效,则您的安装可能存在问题。
答案3
像其他答案一样检查您的日志文件。另外,检查您是否有足够的(或任何磁盘空间)。MySQL 可以在空分区上以这种方式运行。
df -h
如果不是这样,请查看 MySQL 的文档调试服务器. 它们myisamchk
(如果您使用 MyISAM)特别有用。
答案4
我的 512MB Digital Ocean droplet 也遇到了同样的问题。
原来是因为内存不足。
一个直接的解决方案是重新启动其他服务以释放内存,例如。
sudo service apache2 restart
然后希望有足够的内存,你应该能够重新启动mysql
sudo service mysql restart
长期解决方案是购买更多 RAM,或者创建交换内存。