當前位置:首頁 » 數據倉庫 » mysql導出完整資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql導出完整資料庫

發布時間: 2022-08-02 02:45:17

A. 如何將mysql的一個完整資料庫全部復制到另外一個資料庫

如果從庫上表 t 數據與主庫不一致,導致復制錯誤,整個庫的數據量很大,重做從庫很慢,如何單獨恢復這張表的數據?通常認為是不能修復單表數據的,因為涉及到各表狀態不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:

場景 1

如果復制報錯後,沒有使用跳過錯誤、復制過濾等方法修復主從復制。主庫數據一直在更新,從庫數據停滯在報錯狀態(假設 GTID 為 aaaa:1-100)。

修復步驟:

  • 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000);

  • 恢復到從庫;

  • 啟動復制。

  • 這里的問題是復制起始位點是 aaaa:101,從庫上表 t 的數據狀態是領先其他表的。aaaa:101-10000 這些事務中只要有修改表 t 數據的事務,就會導致復制報錯 ,比如主鍵沖突、記錄不存在(而 aaaa:101 這個之前復制報錯的事務必定是修改表 t 的事務)

    解決辦法:啟動復制時跳過 aaaa:101-10000 這些事務中修改表 t 的事務。

    正確的修復步驟:

    1. 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000),恢復到從庫;

    2. 設置復制過濾,過濾表 t:

  • CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');

  • 3. 啟動復制,回放到 aaaa:10000 時停止復制(此時從庫上所有表的數據都在同一狀態,是一致的);

  • START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';

  • 4. 刪除復制過濾,正常啟動復制。

    注意事項:這里要用 mysqlmp --single-transaction --master-data=2,記錄備份快照對應的 GTID

    場景 2

    如果復制報錯後,使用跳過錯誤、復制過濾等辦法修復了主從復制。主、從庫數據一直在更新。

    修復步驟:

  • 在主庫上備份表 t (假設備份快照 GTID為 aaaa:1-10000);

  • 停止從庫復制,GTID為 aaaa:1-20000;

  • 恢復表 t 到從庫;

  • 啟動復制。

  • 這里的問題是復制起始位點是 aaaa:20001,aaaa:10000-20000 這些事務將不會在從庫上回放,如果這裡面有修改表 t 數據的事務,從庫上將丟失這部分數據。

    解決辦法:從備份開始到啟動復制,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務。

    正確修復步驟:

  • 對表 t 加讀鎖;

  • 在主庫上備份表 t;

  • 停止從庫復制,恢復表 t;

  • 啟動復制;

  • 解鎖表 t。

  • 如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。

B. 怎樣在MySQL資料庫中導出整個資料庫

1.導出整個資料庫
mysqlmp
-u
用戶名
-p
資料庫名
>
導出的文件名
mysqlmp
-u
wcnc
-p
smgp_apps_wcnc
>
wcnc.sql
2.導出一個表
mysqlmp
-u
用戶名
-p
資料庫名
表名>
導出的文件名
mysqlmp
-u
wcnc
-p
smgp_apps_wcnc
users>
wcnc_users.sql
3.導出一個資料庫結構
mysqlmp
-u
wcnc
-p
-d
--add-drop-table
smgp_apps_wcnc
>d:wcnc_db.sql
-d
沒有數據
--add-drop-table
在每個create
語句之前增加一個drop
table
4.導入資料庫

C. mysql如何導出整個資料庫

mysql
的好用之處就是其命令行簡單明了。
mysqlmp是最快的方法。你看不懂沒關系,可以照著做。
1.打開DOS窗口
2.鍵入
mysqlmp
--user
root
--password=123456
mysql
>
d:\mysql.sql
--user
表示要你的mysql登陸用戶名
超級用戶默認為root
--password=123456
就是密碼了,你的是多少就把123456換成你的。
mysql
是資料庫名,你要導出的是什麼,就換成什麼名。
>
是重定向符
,把資料庫的內容以sql代碼的形式重定向到d:\mysql.sql文件。
知道了導出,肯定要導入:
導入方法:
1.打開DOS窗口。
2.鍵入mysql
-uroot
-p123456
mysql
<
d:\mysql.sql
就是上面的相反過程。只是形式有點差別。
很簡單吧。

D. mysql導出資料庫幾種方法

1、確保我們的資料庫已經正確的安裝在電腦上了,首先打開命令行窗口,win+R快捷鍵打開運行窗口,輸入cmd。

E. mysql如何導出資料庫

可以下載個navicat工具,用工具連接資料庫後有個導出功能,能直接導出資料庫文件,後綴格式自己選擇,一般是導出sql後綴的文本文件。

F. 怎麼從mysql 導出整個數據

在命令行下mysql的數據導出有個很好用命令mysqlmp,它的參數有一大把,可以這樣查看:
mysqlmp

最常用的:
mysqlmp -uroot -pmysql databasefoo table1 table2 > foo.sql

這樣就可以將資料庫databasefoo的表table1,table2以sql形式導入foo.sql中,其中-uroot參數表示訪問資料庫的用戶名是root,如果有密碼還需要加上-p參數

C:\Users\jack> mysqlmp -uroot -pmysql sva_rec date_drv > e:\date_drv.sql

mysql的數據導入也是相當便捷的,如:
mysql -uroot databasefoo < foo.sql

這樣就可以將foo.sql的數據全部導入資料庫databasefoo

1.導出整個資料庫

mysqlmp -u用戶名 -p密碼 資料庫名 > 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql sva_rec > e:\sva_rec.sql

2.導出一個表,包括表結構和數據

mysqlmp -u用戶名 -p 密碼 資料庫名 表名> 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql

3.導出一個資料庫結構
C:\Users\jack> mysqlmp -uroot -pmysql -d sva_rec > e:\sva_rec.sql

4.導出一個表,只有表結構
mysqlmp -u用戶名 -p 密碼 -d資料庫名 表名> 導出的文件名
C:\Users\jack> mysqlmp -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql

5.導入資料庫

常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:wcnc_db.sql

G. MySQL怎樣導出資料庫

打開Navicat ,在我們要到處的數據上面右擊滑鼠,然後彈出的快捷菜單上點擊「轉儲SQL 文件」,在再次彈出的子菜單項中選擇第一個「數據跟結構」。

H. 如何從mysql資料庫導出所有數據

找到mysql文件夾,裡面有個文件叫data,保存起來,到時候覆蓋在新的文件裡面就行了,不要去弄什麼輸入命令,麻煩!如圖:

I. mysql如何導出、導入資料庫和表,詳細一點

MySQL命令行導出資料庫:
1,進入MySQL目錄下的bin文件夾:cd
MySQL中到bin文件夾的目錄
如我輸入的命令行:cd
C:\Program
Files\MySQL\MySQL
Server
4.1\bin
(或者直接將windows的環境變數path中添加該目錄)
2,導出資料庫:mysqlmp
-u
用戶名
-p
資料庫名
>
導出的文件名
如我輸入的命令行:mysqlmp
-u
root
-p
news
>
news.sql
(輸入後會讓你輸入進入MySQL的密碼)
(如果導出單張表的話在資料庫名後面輸入表名即可)
3、會看到文件news.sql自動生成到bin文件下
命令行導入資料庫:
1,將要導入的.sql文件移至bin文件下,這樣的路徑比較方便
2,同上面導出的第1步
3,進入MySQL:mysql
-u
用戶名
-p
如我輸入的命令行:mysql
-u
root
-p
(輸入同樣後會讓你輸入MySQL的密碼)
4,在MySQL-Front中新建你要建的資料庫,這時是空資料庫,如新建一個名為news的目標資料庫
5,輸入:mysql>use
目標資料庫名
如我輸入的命令行:mysql>use
news;
6,導入文件:mysql>source
導入的文件名;
如我輸入的命令行:mysql>source
news.sql;

J. 命令行怎麼導出mysql資料庫

MySQL命令行導出資料庫:
1,進入MySQL目錄下的bin文件夾:cd MySQL中到bin文件夾的目錄如我輸入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接將windows的環境變數path中添加該目錄)2,導出資料庫:mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名如我輸入的命令行:mysqlmp -u root -p news > news.sql (輸入後會讓你輸入進入MySQL的密碼)(如果導出單張表的話在資料庫名後面輸入表名即可)3、會看到文件news.sql自動生成到bin文件下
命令行導入資料庫:
1,將要導入的.sql文件移至bin文件下,這樣的路徑比較方便2,同上面導出的第1步
3,進入MySQL:mysql -u 用戶名 -p
如我輸入的命令行:mysql -u root -p (輸入同樣後會讓你輸入MySQL的密碼)4,在MySQL-Front中新建你要建的資料庫,這時是空資料庫,如新建一個名為news的目標資料庫5,輸入:mysql>use 目標資料庫名
如我輸入的命令行:mysql>use news;
6,導入文件:mysql>source 導入的文件名;
如我輸入的命令行:mysql>source news.sql;
MySQL備份和還原,都是利用mysqlmp、mysql和source命令來完成的。
1.Win32下MySQL的備份與還原
1.1 備份
開始菜單 | 運行 | cmd |利用「cd \Program Files\MySQL\MySQL Server 5.0\bin」命令進入bin文件夾 | 利用「mysqlmp -u 用戶名 -p databasename >exportfilename」導出資料庫到文件,如mysqlmp -u root -p voice>voice.sql,然後輸入密碼即可開始導出。
1.2 還原
進入MySQL Command Line Client,輸入密碼,進入到「mysql>」,輸入命令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫,輸入"use voice;",回車;導入數據,輸入"source voice.sql;",回車,開始導入,再次出現"mysql>"並且沒有提示錯誤即還原成功。
2.Linux下MySQL的備份與還原
2.1 備份
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)[root@localhost mysql]# mysqlmp -u root -p voice>voice.sql,輸入密碼即可。
2.2 還原
法一:
[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進入MySQL的控制台"mysql>",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。