癥狀:前一天在MySQL中刪除了幾個不用的資料庫後登陸MySQL出現以下錯誤: mysql -u root -p passwd ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql ...
癥狀:前一天在MySQL中刪除了幾個不用的資料庫後登陸MySQL出現以下錯誤: mysql -u root -p passwd ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 查看 /var/run/mysqld/mysqld.sock 根本這個文件不存在了; 有幾個原因可能導致mysqld.sock不存在: 1.沒有安裝mysql-server 2.如果安裝了mysql-server而且它已經運行了 則需要檢查配置文件具體可以看stack overflow的解答: http://stackoverflow.com/questions/11657829/error-2002-hy000-cant-connect-to-local-mysql-server-through-socket-var-run 此時我發現雖然mysql-server已經安裝好了,但是ps -aux | grep 'mysql' 發現mysql服務並沒開啟; 然而 : sudo service mysql start 報錯: start: Job failed to start 並且 /var/log/mysql/error.log是空的,無法根據日誌排錯; 在stack overflow 上看到類似重新安全mysql-server但是還保存原來資料庫數據的方法: http://stackoverflow.com/questions/22909060/mysql-job-failed-to-start 大概步驟: 1.備份原來資料庫數據文件以防沒有安裝成功:
sudo mkdir /home/<your username>/mysql/ cd /var/lib/mysql/ sudo cp * /home/<your username>/mysql/ -R2.為重新安裝而清理mysql
sudo apt-get purge mysql-server-5.1 mysql-common3.刪除/etc/mysql文件夾以及其中內容
sudo rm /etc/mysql/ -R4.檢查原來的資料庫文件仍然在/var/lib/mysql/中如果不存在將第一步保存的文件複製到這個文件中並更改它的擁有者和群組為root;
sudo mkdir /var/lib/mysql/ sudo chown root:root /var/lib/mysql/ -R cd ~/mysql/ sudo cp * /var/lib/mysql/ -R5.安裝新的mysql server
sudo apt-get install mysql-server6.重新連接查看原來數據是否存在
mysql -u root -p passwd mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sql | +--------------------+ 4 rows in set (0.00 sec)此時我的mysql又回來原來的狀態了;