⑴ 求助:關於linux下的MySQL數據恢復問題
Temps/usr/local/mysql/var/XXXXXX下存放著mysql所有數據文件?
那把這個目錄下的所有文件直接拷貝到mysql(usr/local/mysql/var/XXXXXX,然後修改my.cnf文件
在[mysqld]元素下重新指定datadir和basedir參數,前者是mysql數據文件目錄,後者是mysql安裝根目錄;
如果存在innodb引擎表,那麼還要重新制定innodb_data_home_dir和innodb_data_file_path
前者是ibdata文件的目錄,後者需要指定ibdata文件的大小,以及自增顆粒度,注意,你遷移的數據文件中本身就存在ibdata文件,所以innodb_data_file_path設置的大小必須和他一致,不然啟動不了。
涉及到遷移,做好備份,以防誤操作導致數據丟失。
⑵ linux下mysql資料庫備份工具有哪些
⑶ linux 怎樣恢復mysql資料庫日誌
一、binlog 介紹
伺服器的二進制日誌記錄著該資料庫的所有增刪改的操作日誌(前提是要在自己的伺服器上開啟binlog),還包括了這些操作的執行時間。為了顯示這些二進制內容,我們可以使用mysqlbinlog命令來查看。
用途1:主從同步
用途2:恢復資料庫(也是線上出現一次資料庫文件丟失後,才對這個有所了解並學習的)
mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ...
1)mysqlbinlog 選項示例
常見的選項有以下幾個:
--start-datetime
從二進制日誌中讀取指定等於時間戳或者晚於本地計算機的時間。取值如:="1470733768" 或者="2016-08-09 5:09:28"
示例:
[root@hcloud ~]# mysqlbinlog --start-datetime="2016-08-09 5:05:27" /var/lib/mysql/mysql-bin.000001
--stop-datetime
從二進制日誌中讀取指定小於時間戳或者等於本地計算機的時間取值和上述一樣
--start-position
從二進制日誌中讀取指定position 事件位置作為開始。取值:="2698"
示例:
[root@hcloud ~]# mysqlbinlog --start-position="2698" /var/lib/mysql/mysql-bin.000001
--stop-position
從二進制日誌中讀取指定position 事件位置作為事件截至。取值:="2698"
二、環境准備以及備份恢復
1) 安裝好mysql後,檢查開啟binlog
mysql> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
:上面提示說明沒有伺服器開啟binlog
修改/etc/my.cnf
在mysqld選項中添加一行內容如下:
log-bin=mysql-bin
默認如果不給值的話,log-bin 的會
⑷ linux mysql備份和恢復
備份所有資料庫# mysqlmp -u root -p --opt --all-databases > /root/all-databases
修復# myisamchk -r /var/lib/mysql/allusers/names.MYI
或# myisamchk -o /var/lib/mysql/allusers/names.MYI
⑸ mysql數據表內容刪除後怎麼恢復
在解決的過程中,以下幾種嘗試:
1.如果開啟了日誌,直接mysqlbinlog 使用日誌恢復即可。
2.如果不是刪除了一個表的部分數據,而是刪除整個表,那麼可以在刪除後馬上用磁碟數據恢復軟體嘗試恢復。(因為刪除表後會有文件被刪除,而刪除表的部分數據,文件還是存在)
3.找數據恢復的公司,使用工具分析ibdata1(分析過程參考一頁一頁查看有沒有歷史記錄存在,使用ibdata1恢復數據,應該是在了解數據表結構的前提下,資料庫除ibdata1外其他數據受損不能正常使用資料庫時嘗試,而不是刪了表數據後恢復什麼的。(事實上,這個文件是存儲現有表數據的,其實也可以設置成每個表一個文件。)
4.mysql下有ib_logfile0和ib_logfile1兩個文件,其實這兩個文件里,記錄了Mysql的一些事物日誌,用於事務的前滾後滾,是Mysql自身使用的,這個文件用文本工具打開後,有很多亂碼,但卻可以查找到被刪除的少量數據的insert記錄,極少數的亂碼通過前後語句找出了原文,最終通過事物日誌恢復了刪除的文件。
註:用事物日誌恢復,需要幾個前提。
1:知道被刪除數據的大概位置,不要這邊查找,那邊又不斷有新數據插入。
2:因為有很多亂碼,適用於查找少量數據,而不是用作大量數據的恢復,浪費體力。
3:如果二進制日誌沒開,沒有備份,那麼只能用這種方法恢復了。