今天早上,我突然發現我家的網站無法連接。趕緊打開終端一看,發現mysql服務沒了。
$ sudo systemctl status mysql
結果顯示mysql服務停止了。接著嘗試啟動mysql服務。
$ sudo systemctl start mysql
但是,啟動失敗了。
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
看來是mysql服務遇到了問題,需要進一步排查。打開日志文件查看。
$ sudo tail -f /var/log/mysql/error.log
發現錯誤信息為:
Error: Tablespace for table '`database_name`.`table_name`' exists. Please DISCARD the tablespace before IMPORT.
這個錯誤表明某個表的表空間已經存在了,并且需要在導入之前廢棄掉這個表空間。解決方法很簡單,只需要執行以下SQL語句:
ALTER TABLE `table_name` DISCARD TABLESPACE;
注意要將table_name
替換為具體的表名。這樣就可以解決mysql服務無法啟動的問題了。