1、首先檢查是否已安裝MySQL服務(wù),如果沒有安裝,則需要安裝MySQL服務(wù)。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比都江堰網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式都江堰網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋都江堰地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
2、然后檢查MySQL服務(wù)是否已經(jīng)在系統(tǒng)服務(wù)列表中,如果不在則需要手動添加MySQL服務(wù)。
3、檢查MySQL的配置文件my.ini是否正確,如果不正確則需要修改配置文件。
4、檢查Windows服務(wù)管理器中MySQL服務(wù)的狀態(tài)是否處于“運行”狀態(tài),如果不是,則需要手動啟動MySQL服務(wù)。
拓展:
如果以上步驟都無法解決問題,可以嘗試更新MySQL安裝包,或者重新安裝MySQL服務(wù)。如果仍然無法解決,則可以嘗試檢查MySQL的數(shù)據(jù)庫文件是否損壞,如果損壞則需要進行修復。
mysql CREATE DATABASE sakila;
mysql USE sakila;
mysql CREATE TABLE actor (
? ? actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
? ? first_name VARCHAR(45) NOT NULL,
? ? last_name VARCHAR(45) NOT NULL,
? ? last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
? ? PRIMARY KEY? (actor_id),
? ? KEY idx_actor_last_name (last_name)
? )ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE {庫名}.{表名} DISCARD TABLESPACE;
例:
mysql ALTER TABLE sakila.actor DISCARD TABLESPACE;
cp /backup_directory/actor.ibd path/to/mysql-5.7/data/sakila/
ALTER TABLE {庫名}.{表名} IMPORT TABLESPACE;SHOW WARNINGS;
例:
mysql ALTER TABLE sakila.actor IMPORT TABLESPACE; SHOW WARNINGS;
Query OK, 0 rows affected, 1 warning (0.15 sec)
Warning | 1810 | InnoDB: IO Read error: (2, No such file or directory)
Error opening './sakila/actor.cfg', will attempt to import
without schema verification
mysql SELECT COUNT(*) FROM sakila.actor;
+----------+
| count(*) |
+----------+
|? ? ? 200 |
+----------+
數(shù)據(jù)庫損壞。
虛擬機安裝mysql無法啟動服務(wù)是數(shù)據(jù)庫損壞。那么具體是哪個庫損壞了,可以查看msyql安裝目錄下的log文件。
查看log文件中的錯誤記錄,找到出現(xiàn)問題的庫和表,然后進行修復。
Windows上安裝了XMAPP-controller之后間歇性出現(xiàn)MySQL無法啟動,查看日之后發(fā)現(xiàn)是innodb的報錯,報錯信息如下:
度娘上各種答案無法解決,后來直接看官方文檔,直接上解決方案:
踩坑指南 - - 操作配置前需要做這些操作:
1、配置my.cnf 配置innodb_force_recovery = 1 到 6 試到正確為止,重啟MySQL
2、導出數(shù)據(jù)腳本 mysqldump -uroot -p123456 test test.sql 導出SQL腳本。或者用Navicat將所有數(shù)據(jù)庫/表導入到其他服務(wù)器的數(shù)據(jù)庫中。 注意:這里的數(shù)據(jù)一定要備份成功。然后刪除原數(shù)據(jù)庫中的數(shù)據(jù)。
3、刪除ib_logfile0、ib_logfile1、ibdata1 備份MySQL數(shù)據(jù)目錄下的ib_logfile0、ib_logfile1、ibdata1三個文件,然后將這三個文件刪除
4、配置my.cnf 將my.cnf中innodb_force_recovery 這行配置刪除或者配置為innodb_force_recovery = 0,重啟MySQL服務(wù)
5、將數(shù)據(jù)導入MySQL數(shù)據(jù)庫 mysql -uroot -p123456 test test.sql;
或者用Navicat將備份的數(shù)據(jù)導入到數(shù)據(jù)庫中。 如果在導入數(shù)據(jù)過程中發(fā)生tablespace不存在的問題,請刪除data目錄相應(yīng)database下的文件。
在使用MySQL數(shù)據(jù)庫的時候,都碰到過因斷電造成數(shù)據(jù)庫損壞的情況,大家都知道,斷電或非正常關(guān)機是導致MySQL數(shù)據(jù)庫出現(xiàn)錯誤最常見的原因,如何恢復MySQL數(shù)據(jù)庫是大家都非常頭痛的問題。目前有方法可以幫助大家恢復損壞的MySQL數(shù)據(jù)庫嗎?
當用戶出現(xiàn)斷電造成的MySQL數(shù)據(jù)庫丟失損壞時,如果能進入MySQL軟件,但是提示錯誤信息,用戶可以通過“系統(tǒng)維護”—“數(shù)據(jù)庫壓縮修復”,壓縮下數(shù)據(jù)庫(有些軟件在“系統(tǒng)設(shè)置”—“系統(tǒng)維護”—“數(shù)據(jù)庫備份\恢復”中),這種方法只適合一小部分的數(shù)據(jù)庫故障修復,功能性并不高。
現(xiàn)在網(wǎng)絡(luò)上有兩種比較推薦使用的MySQL數(shù)據(jù)庫恢復方法,一種方法使用MySQL(和PHP搭配之最佳組合)的check table和repair table 的sql語句,另一種方法是使用MySQL(和PHP搭配之最佳組合)提供的多個myisamchk, isamchk數(shù)據(jù)檢測恢復工具。在很多用戶看來,這兩個方法都比較復雜,并不適合大多數(shù)的用戶使用。另外,這兩種方法并不能有效的恢復MySQL數(shù)據(jù)庫,可能還會造成數(shù)據(jù)庫被進一步損壞,造成大家無法挽回的損失。根據(jù)以上幾個原因,這兩種MySQL數(shù)據(jù)庫恢復方法并不建議大家使用。
。
數(shù)據(jù)庫被損壞分以下幾種情況:
1、嚴重損壞
2、輕度損壞
3、有些表被損壞或有些表的部分記錄被損壞