本文目錄一覽:
- 1、如何修復MySQL數據庫
- 2、如何修復MYSQL數據庫因斷電造成的數據損壞
- 3、mysql數據庫被破壞,只剩下ibd文件時如何恢復
- 4、怎樣修復已經損壞的SQL數據庫?
- 5、怎麼恢復mysql數據庫怎麼恢複數據
- 6、怎麼恢復mysql數據庫
如何修復MySQL數據庫
簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行copy,就可回復原來的數據。
複雜情況下:
從另一台機上把MySQL數據庫的mysql文件夾拷貝到本地機上,目的是恢複本地機對數據的訪問和操作。經過如下幾種情況的操作。
1. 在本地重裝MySQL(安裝目錄D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夾拷貝至D:\Program Files\MySQL\MySQL Server 5.0\。結果,失敗:數據庫連接錯誤。
2. 卸載後重裝MySQL,將D:\Program Files\MySQL\MySQL Server 5.0\下的數據備份,只把mysql\data文件夾全部內容拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data下。結果,失敗:數據庫連接錯誤。將備份的數據還完覆蓋。結果,失敗,還是連接不上數據庫。
3. 卸載後重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的數據庫)拷貝進D:\Program Files\MySQL\MySQL Server 5.0\data。連接成功,在Navicat for MySQL里看到數據庫cf1和last,但是不能訪問,因為數據全為零。明白了原來data里以數據庫命名的文件存儲的是數據庫的表結構,不是元數據。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數據)拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat for MySQL,連接成功,數據可以訪問操作。
至此,操作終於成功。其實當初在那台機上把數據導出來,而不是現在直接把文件夾mysql複製過來會更容易恢復。但那台機已經重裝了系統,也就是說MySQL失效了。
如何修復MYSQL數據庫因斷電造成的數據損壞
修復MYSQL數據庫因斷電造成的數據損壞
在使用MySQL數據庫的時候,都碰到過因斷電造成數據庫損壞的情況,大家都知道,斷電或非正常關機是導致MySQL數據庫出現錯誤最常見的原因,如何恢復MySQL數據庫是大家都非常頭痛的問題。目前有方法可以幫助大家恢復損壞的MySQL數據庫嗎?
當用戶出現斷電造成的MySQL數據庫丟失損壞時,如果能進入MySQL軟件,但是提示錯誤信息,用戶可以通過“系統維護”—“數據庫壓縮修復”,壓縮下數據庫(有些軟件在“系統設置”—“系統維護”—“數據庫備份\恢復”中),這種方法只適合一小部分的數據庫故障修復,功能性並不高。
現在網絡上有兩種比較推薦使用的MySQL數據庫恢復方法,一種方法使用MySQL(和PHP搭配之最佳組合)的check table和repair table 的sql語句,另一種方法是使用MySQL(和PHP搭配之最佳組合)提供的多個myisamchk, isamchk數據檢測恢復工具。在很多用戶看來,這兩個方法都比較複雜,並不適合大多數的用戶使用。另外,這兩種方法並不能有效的恢復MySQL數據庫,可能還會造成數據庫被進一步損壞,造成大家無法挽回的損失。根據以上幾個原因,這兩種MySQL數據庫恢復方法並不建議大家使用。
。
數據庫被損壞分以下幾種情況:
1、嚴重損壞
2、輕度損壞
3、有些表被損壞或有些表的部分記錄被損壞
mysql數據庫被破壞,只剩下ibd文件時如何恢復
在使用獨立表空間的情況下,如果不慎使得innodb存儲引擎的元數據文件ibdata損壞,我們還可以挽救寶貴的數據.因為在innodb使用獨立表空間的情況下,ibdata文件會記錄每個innodb表的id,只要使得ibd中的表id和ibdata文件中記錄的表id相同,就能夠打開表,讀取到數據.
#創建表
CREATE TABLE `ibdtest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fid` int(11) NOT NULL COMMENT ‘表b中的id’, `content` char(255) NOT NULL COMMENT ‘操作內容,系統生成’, `mark` char(255) NOT NULL COMMENT ‘備註’, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
#添加數據INSERT ibdtest (fid,content,mark) VALUES (1,’1′,’1′),(2,’2′,’2′);SELECT * FROM ibdtest;
怎樣修復已經損壞的SQL數據庫?
1.停止SQL Server的服務,備份SQL Server安裝目錄下的\data子目錄
下故障數據庫的兩個文件,一個數據文件hbposv6_branch_data.mdf,
一個hbposv6_branch_log.ldf(也有可能非此命名),同時查看磁盤
空間是否有足夠的空間;
2.啟動SQL Server服務(如已停止),創建一個新的數據庫,命名為
原來數據庫的名字。
3.停止SQL Server
4.把老數據庫的MDF文件(hbposv6_branch_data.mdf)替換
新數據庫的相應的MDF文件,
並把LDF文件(hbposv6_branch_log.ldg)刪除。
5.重新啟動SQL Server服務,然後運行如下命令:
Use Master
go
sp_configure ‘allow updates’, 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = ‘hbposv6_branch’
–Verify one row is updated before committing
commit tran
go
6.停止SQL然後重新啟動SQL Server服務,然後運行如下命令
(更換日誌文件路徑地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
(‘hbposv6_branch’,
‘c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf’)
–在這裡,請輸入你的數據庫的路徑
go
7.停止SQL然後重新啟動SQL Server服務,然後運行:
use master
go
update sysdatabases set status = 8 where name = ‘hbposv6_branch’
go
sp_configure ‘allow updates’, 0
reconfigure with override
go
8.運行dbcc checkdb(db_name) 檢查數據庫的完整性
9.修複數庫
–請在查詢分析器中執行下列語句.執行前斷開其它
所有數據庫連接,最好是斷開網線
–如果不是該數據庫名,請將數據庫
–hbposv6_branch
–改為要修復的數據庫
USE master
Go
–單用戶模式
EXEC sp_dboption ‘hbposv6_branch’, ‘single user’, ‘TRUE’
go
–數據庫檢查
DBCC CHECKDB (‘hbposv6_branch’)
Go
–如果返回結果出現了紅色的提示文字,說明數據庫中存在錯誤,需要修復
–數據庫修復
DBCC CHECKDB (‘hbposv6_branch’,’repair_rebuild’)
Go
–再次數據庫檢查,如果返回結果中沒有了紅色的提示文字,
說明修復成功;
DBCC CHECKDB (‘hbposv6_branch’)
Go
–否則意味着還需要更高級別的修復;嘗試將上面修復語句的
‘repair_rebuild’換為’repair_allow_data_loss’再試,
之後再次檢查數據庫。
–如果還有錯誤未修復,請把這些信息以文字的方式發給我們
–退出前請一定要執行以下語句返回到多用戶模式
EXEC sp_dboption ‘hbposv6_branch’, ‘single user’,’FALSE’
go
註:都要把 dbname 替換成真實的數據庫名字。
怎麼恢復mysql數據庫怎麼恢複數據
簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行copy,就可回復原來的數據。
複雜情況下:
從另一台機上把MySQL數據庫的mysql文件夾拷貝到本地機上,目的是恢複本地機對數據的訪問和操作。經過如下幾種情況的操作。
1.
在本地重裝MySQL(安裝目錄D:\Program
Files\MySQL\MySQL
Server
5.0),直接把mysql文件夾拷貝至D:\Program
Files\MySQL\MySQL
Server
5.0\。結果,失敗:數據庫連接錯誤。
2.
卸載後重裝MySQL,將D:\Program
Files\MySQL\MySQL
Server
5.0\下的數據備份,只把mysql\data文件夾全部內容拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data下。結果,失敗:數據庫連接錯誤。將備份的數據還完覆蓋。結果,失敗,還是連接不上數據庫。
3.
卸載後重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的數據庫)拷貝進D:\Program
Files\MySQL\MySQL
Server
5.0\data。連接成功,在Navicat
for
MySQL里看到數據庫cf1和last,但是不能訪問,因為數據全為零。明白了原來data里以數據庫命名的文件存儲的是數據庫的表結構,不是元數據。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數據)拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat
for
MySQL,連接成功,數據可以訪問操作。
至此,操作終於成功。其實當初在那台機上把數據導出來,而不是現在直接把文件夾mysql複製過來會更容易恢復。但那台機已經重裝了系統,也就是說MySQL失效了。
怎麼恢復mysql數據庫
mysql數據庫恢復方法:
方法一:
命令恢複數據庫:
mysql -u root –password=root密碼 數據庫名 備份文件.sql
方法二:
第一步:用管理員權限登錄並進入後台管理界面,點“數據庫-資料恢復”。
第二步:在數據恢復設置中選擇“從本地文件”進行恢復,然後通過右邊的“瀏覽”按鈕找到之前保存下來的.sql文件。
第三步:點“提交”按鈕後將出現詢問“分卷數據成功導入數據庫,需要自動導入本次其他的備份嗎?”一般繼續點“確定”按鈕即可。之後的數據庫文件就完全導入到當前網站了。這時出現再次要求輸入管理員帳號的提示。訪問網站地址時也會看到所有信息都恢復到備份數據庫時的內容了。
小提示:
不管採取哪種方式備份和恢複數據庫,一定要注意備份和恢復時使用的版本要相同,甚至是語言種類也要一致,否則會存在亂碼的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243040.html