導航:首頁 > 程序命令 > mysql數據還原命令

mysql數據還原命令

發布時間:2022-03-06 17:25:57

1. mysql中sql命令執行後怎麼恢復

2. mysql在dos命令下備份還原資料庫

mysqlmp不是mysql查詢語言不能在mysql> 下面執行。
mysqlmp【導出】 應該為一種dos命令【在成功安裝來mysql的電腦上】,所以你在mysql\bin目錄執行即可 如:........mysql\bin\ mysqlmp -u root -p dbcurr> d:\20090219.sql

3. 求mysql 備份,還原的sql語句(不是命令)

建議使用mysqlmp
在相當長的時間內,mysqlmp是MySQL提供的唯一的備份工具。
當然現在不是啦,還有mysqlhot等一些備份工具
用法:
$
mysqlmp
-u
root
-proot
-x
--databases
ftp
>;
mp.sql
x選項用來在備份的時候鎖住相應的資料庫,以保證數據安全
恢復:
$
mysql
-u
root
-proot
<
mp.sql
另外最好寫個腳本,用crontab定時執行
這樣會省好多力氣

4. 怎麼還原,恢復或導入MySQL資料庫

1、source命令

1)打開開始菜單->程序->MySQL->MySQL Command Line Client,輸入MySQL的root密碼。

2)然後輸入use 資料庫名;進入對應的資料庫,再用source 備份文件具體路徑;命令導入備份文件。注意,在這里的命令後面都要加;分號,截圖如下:

2、mysql命令

1)如果是Windows系統,請在命令行模式下進入mysql的bin目錄,如D:Programmysql41in。如果是Linux系統,請直接看下面的步驟。

2)執行mysql命令導入資料庫,命令格式為:

mysql -u用戶名 -p密碼 資料庫名<備份文件具體路徑

比如:mysql -uroot -pabc123 mydb<file.sql,其中用戶名和密碼也可以是具體資料庫的,不一定要root的。

二、資料庫的導出(備份)

一般使用mysqlmp命令

1)如果是Windows系統,請在命令行模式下進入mysql的bin目錄,如D:Programmysql41in。如果是Linux系統,請直接看下面的步驟。

2)執行mysqlmp命令導入資料庫,命令格式為:

mysqlmp -u用戶名 -p密碼 資料庫名>備份文件具體路徑

5. 怎麼樣使用mysql命令將備份文件.sql中的數據還原至新創建的表

在系統環境...直接執行.. mysql -uroot -p密碼 database_name < ****.sql
或者進入mysql命令行..使用source /root/****.sql

6. mysql資料庫刪除了怎麼還原數據

首先:將最近的二進制類型的日誌文件存成文本文件導出,命令如下:

mysqlbinlog F:/wamp/mysql-bin.000045 > F:/test.txt

其次:打開保存的txt文件,文件格式如下:

其中at 1099代表第1099個命令(姑且這么記),查詢這些命令,看看你需要回復的命令在什麼地方,然後執行命令。

最後:執行回復命令,如下:

mysqlbinlog --start-position="123" --stop-position="531" F:/wamp/mysql-bin.000045 F:/test.txt | mysql -uroot -p

7. 如何使用命令來備份和還原MySQL資料庫

備份資料庫
使用mysqlmp命令備份資料庫

復制代碼代碼如下:

# 如果要將game資料庫進行備份:
mysqlmp -u root -p game > game_backup.sql

# 如果希望備份所有的資料庫:
mysqlmp -u root -p --all-databases > all_backup.sql

還原資料庫
1、使用mysql命令還原資料庫
將game_backup.sql 還原至 game 資料庫:

復制代碼代碼如下:

mysql -u root -p game < game_backup.sql

2、使用source命令還原資料庫
如果資料庫過大,建議可以使用source命令

復制代碼代碼如下:

mysql> source game_backup.sql

8. mysql命令行下怎樣實現數據的回滾操作

當啟動Binlog後,事務會產生Binlog Event,這些Event被看做事務數據的一部分。因此要保證事務的Binlog Event和InnoDB引擎中的數據的一致性。所以帶Binlog的CrashSafe要求MySQL宕機重啟後能夠保證:

- 所有已經提交的事務的數據仍然存在。

- 所有沒有提交的事務的數據自動回滾。

- 所有已經提交了的事務的Binlog Event也仍然存在。

- 所有沒有提交事務沒有記錄Binlog Event。

這些要求很好理解,如果重啟後數據還在,但是Binlog Event沒有了,就沒辦法復制到其他節點上了。如果重啟後,數據沒了,但是Binlog Event還在,那麼不存在的數據就會被復制到其他節點上,從而導致主從的不一致。

為了保證帶Binlog的CrashSafe,MySQL內部使用的兩階段提交(Two Phase Commit)。

2 - MySQL的Two Phase Commit(2PC)

在開啟Binlog後,MySQL內部會自動將普通事務當做一個XA事務來處理:
- 自動為每個事務分配一個唯一的ID
- COMMIT會被自動的分成Prepare和Commit兩個階段。
- Binlog會被當做事務協調者(Transaction Coordinator),Binlog Event會被當做協調者日誌。
想了解2PC,可以參考文檔:【https://en.wikipedia.org/wiki/Two-phase_commit_protocol。】

- 分布式事務ID(XID)

使用2PC時,MySQL會自動的為每一個事務分配一個ID,叫XID。XID是唯一的,每個事務的XID都不相同。XID會分別被Binlog和InnoDB記入日誌中,供恢復時使用。MySQ內部的XID由三部分組成:

- 前綴部分

前綴部分是字元串"MySQLXid"

- Server ID部分

當前MySQL的server_id
- query_id部分

為了保證XID的的唯一性,數字部分使用了query_id。MySQL內部會自動的為每一個語句分配一個query_id,全局唯一。

參考代碼:sql/xa。h的struct xid_t結構。

- 事務的協調者Binlog

Binlog在2PC中充當了事務的協調者(Transaction Coordinator)。由Binlog來通知InnoDB引擎來執行prepare,commit或者rollback的步驟。事務提交的整個過程如下:

1. 協調者准備階段(Prepare Phase)

告訴引擎做Prepare,InnoDB更改事務狀態,並將Redo Log刷入磁碟。

2. 協調者提交階段(Commit Phase)

2.1 記錄協調者日誌,即Binlog日誌。

2.2 告訴引擎做commit。
注意:記錄Binlog是在InnoDB引擎Prepare(即Redo Log寫入磁碟)之後,這點至關重要。

在MySQ的代碼中將協調者叫做tc_log。在MySQL啟動時,tc_log將被初始化為mysql_bin_log對象。參考sql/binlog.cc中的init_server_components():
if (opt_bin_log) tc_log= &mysql_bin_log;

而在事務提交時,會依次執行:
tc_log->prepare();
tc_log->commit();
參考代碼:sql/binlog.cc中的ha_commit_trans()。當mysql_bin_log是tc_log時,prepare和commit的代碼在sql/binlog.cc中:

MYSQL_BIN_LOG::prepare();
MYSQL_BIN_LOG::commit();

-協調者日誌Xid_log_event
作為協調者,Binlog需要將事務的XID記入日誌,供恢復時使用。Xid_log_event有以下幾個特點:
- 僅記錄query_id
因為前綴部分不變,server_id已經記錄在Event Header中,Xid_log_event中只記錄query_id部分。
- 標志事務的結束

在Binlog中相當於一個事務的COMMIT語句。

一個事務在Binlog中看起來時這樣的:
Query_log_event("BEGIN");DML產生的events; Xid_log_event;

- DDL沒有BEGIN,也沒有Xid_log_event 。
- 僅InnoDB的DML會產生Xid_log_event
因為MyISAM不支持2PC所以不能用Xid_log_event ,但會有COMMIT Event。
Query_log_event("BEGIN");DML產生的events;Query_log_event("COMMIT");

問題:Query_log_event("COMMIT")和Xid_log_event 有不同的影響嗎?

- Xid_log_event 中的Xid可以幫助master實現CrashSafe。
- Slave的CrashSafe不依賴Xid_log_event
事務在Slave上重做時,會重新產生XID。所以Slave伺服器的CrashSafe並不依賴於Xid_log_event 。Xid_log_event 和Query_log_event("COMMIT"),只是作為事務的結尾,告訴Slave Applier去提交這個事務。因此二者在Slave上的影響是一樣的。

3 - 恢復(Recovery)
這個機制是如何保證MySQL的CrashSafe的呢,我們來分析一下。這里我們假設用戶設置了以下參數來保證可靠性:

- 恢復前事務的狀態
在恢復開始前事務有以下幾種狀態:
- InnoDB中已經提交
根據前面2PC的過程,可知Binlog中也一定記錄了該事務的的Events。所以這種事務是一致的不需要處理。
- InnoDB中是prepared狀態,Binlog中有該事務的Events。
需要通知InnoDB提交這些事務。
- InnoDB中是prepared狀態,Binlog中沒有該事務的Events。
因為Binlog還沒記錄,需要通知InnoDB回滾這些事務。
- Before InnoDB Prepare
事務可能還沒執行完,因此InnoDB中的狀態還沒有prepare。根據2PC的過程,Binlog中也沒有該事務的events。 需要通知InnoDB回滾這些事務。

- 恢復過程
從上面的事務狀態可以看出:恢復時事務要提交還是回滾,是由Binlog來決定的。
- 事務的Xid_log_event 存在,就要提交。
- 事務的Xid_log_event 不存在,就要回滾。

恢復的過程非常簡單:
- 從Binlog中讀出所有的Xid_log_event
- 告訴InnoDB提交這些XID的事務
- InnoDB回滾其它的事務

9. 如何通過命令行恢復mysql資料庫

xxx.frm xxx.MYD xxx.MYI 如果有以上三個文件,則你可以在mysql中新建一個資料庫,它會生成同樣的三個文件, 然後你用你的備份文件覆蓋就OK 前提是版本一致

10. 請教,有在mysql中對前一步操作進行還原的命令嗎

一、從命令行登錄MySQL資料庫伺服器 1、登錄使用默認3306埠的MySQL
/usr/local/mysql/bin/mysql -u root -p
2、通過TCP連接管理不同埠的多個MySQL(注意:MySQL4.1以上版本才有此項功能)
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307
3、通過socket套接字管理不同埠的多個MySQL
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock
4、通過埠和IP管理不同埠的多個MySQL
/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1
--------------------------------------------------------------------------------
二、資料庫操作SQL語句 1、顯示伺服器上當前存在什麼資料庫
SHOW DATABASES;

閱讀全文

與mysql數據還原命令相關的資料

熱點內容
怎麼讓應用加密oppo 瀏覽:814
甜糖伺服器為什麼老是網路變化 瀏覽:123
部隊吃的壓縮餅干 瀏覽:88
linux下安裝mongodb 瀏覽:92
phptextarea換行符 瀏覽:503
做衣服pdf 瀏覽:801
lcb2伺服器怎麼用 瀏覽:216
推薦演算法創新點 瀏覽:23
汽油機壓縮是什麼 瀏覽:281
如何獲得網站源碼 瀏覽:824
搜索本機加密軟體 瀏覽:211
三星迷你日記加密 瀏覽:820
優加密試卷五年級上冊數學 瀏覽:936
社區購物app源碼 瀏覽:125
程序員去北京完整視頻 瀏覽:274
linuxscan 瀏覽:904
查看linux默認shell 瀏覽:153
百雞問題java 瀏覽:714
通信信號調制識別原理與演算法源碼 瀏覽:721
e72手機安裝什麼app 瀏覽:178