關於MySQL資料匯出匯入的文章

2021-07-09 14:53:35 字數 4032 閱讀 7726

1.備忘

2.供開發人員測試

mysql

mysqldump

匯出匯出全庫備份到本地的目錄

mysqldump -u$user -p$passwd -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -a > db.all.sql

匯出指定庫到本地的目錄(例如mysql庫)

mysqldump -u$user -p$passwd -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --databases mysql > db.sql

匯出某個庫的表到本地的目錄(例如mysql庫的user表)

mysqldump -u$user -p$passwd -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql

匯出指定庫的表(僅資料)到本地的目錄(例如mysql庫的user表,帶過濾條件)

mysqldump -u$user -p$passwd -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user --where="host='localhost'"> db.table.sql

匯出某個庫的所有表結構

mysqldump -u$user -p$passwd -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql

匯出某個查詢sql的資料為txt格式檔案到本地的目錄(各資料值之間用"製表符"分隔)

例如sql為'select user,host,password from mysql.user;'

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8 --skip-column-names -b -e 'select user,host,password from mysql.user;' > mysql_user.txt

匯出某個查詢sql的資料為txt格式檔案到mysql伺服器.

登入mysql,將預設的製表符換成逗號.(適應csv格式檔案).

指定的路徑,mysql要有寫的許可權.最好用tmp目錄,檔案用完之後,再刪除!

select user,host,password from mysql.user into outfile '/tmp/mysql_user.csv' fields terminated by ',';

匯入恢復全庫資料到mysql,因為包含mysql庫的許可權表,匯入完成需要執行flush privileges;命令

第一種方法:

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8 < db.all.sql

第二種方法:

登入mysql,執行source命令,後面的檔名要用絕對路徑.

......

mysql> source /tmp/db.all.sql;

恢復某個庫的資料(mysql庫的user表)

第一種方法:

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8 mysql < db.table.sql

第二種方法:

登入mysql,執行source命令,後面的檔名要用絕對路徑.

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8

......

mysql> use mysql;

mysql> source /tmp/db.table.sql;

恢復mysql伺服器上面的txt格式檔案(需要file許可權,各資料值之間用"製表符"分隔)

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8

......

mysql> use mysql;

mysql> load data infile '/tmp/mysql_user.txt' into table user ;

恢復mysql伺服器上面的csv格式檔案(需要file許可權,各資料值之間用"逗號"分隔)

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8

......

mysql> use mysql;

mysql> load data infile '/tmp/mysql_user.csv' into table user fields terminated by ',';

恢復本地的txt或csv檔案到mysql

mysql -u$user -p$passwd -h127.0.0.1 -p3306 --default-character-set=utf8

......

mysql> use mysql;

# txt

mysql> load data local infile '/tmp/mysql_user.csv' into table user;

# csv

mysql> load data local infile '/tmp/mysql_user.csv' into table user fields terminated by ',';

關於mysql連線

-u$user 使用者名稱

-p$passwd 密碼

-h127.0.0.1 如果連線遠端伺服器,請用對應的主機名或者ip位址替換

-p3306 埠

--default-character-set=utf8 指定字符集

關於mysql引數

--skip-column-names 不顯示資料列的名字

-b 以批處理的方式執行mysql程式.查詢結果將顯示為製表符間隔格式.

-e 執行命令後,退出

關於mysqldump引數

-a 全庫備份

--routines 備份儲存過程和函式

--default-character-set=utf8 設定字符集

--lock-all-tables 全域性一致性鎖

--add-drop-database 在每次執行建表語句之前,先執行drop table if exist語句

--no-create-db 不輸出create database語句

--no-create-info 不輸出create table語句

--databases 將後面的引數都解析為庫名

--tables 第乙個引數為庫名 後續為表名

關於load data語法

如果load data語句不帶local關鍵字,就在mysql的伺服器上直接讀取檔案,且要具有file許可權.

如果帶local關鍵字,就在客戶端本地讀取資料檔案,通過網路傳到mysql.

load data語句,同樣被記錄到binlog,不過是內部的機制.

匯出匯入MySql資料

一 匯出資料庫 進入命令列,轉到mysql的安裝目錄的bin資料夾下 輸入下面的命令 1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 mysqldump u root p db db.sql 然後要求你輸入密碼,輸入正確後便可以在該資料夾下找到db.sql檔案 二 ...

mysql資料匯入匯出

1.匯出資料 mysqldump 資料庫名 資料庫備份名 mysqldump a u使用者名稱 p密碼 資料庫名 資料庫備份名 mysqldump d a add drop table uroot p sql a.匯出結構不匯出資料 mysqldump opt d databases u root ...

MySQL資料匯出匯入

匯出整個資料庫結構和資料 mysqldump h localhost uroot p123456 database dump.sql 匯出單個資料表結構和資料 mysqldump h localhost uroot p123456 database table dump.sql 匯出整個資料庫結構 ...