1 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
1 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql
1 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql
1 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user -- 2 where="host='localhost'"> db.table.sql
1 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql
例如sql為'select user,host,password from mysql.user;
1 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
登錄MySQL,將默認的制表符換成逗號.(適應csv格式文件),指定的路徑,mysql要有寫的權限.最好用tmp目錄,文件用完之後,再刪除!
1 SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';
1 第一種方法: 2 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql 3 第二種方法: 4 登錄MySQL,執行source命令,後面的文件名要用絕對路徑. 5 ...... 6 mysql> source /tmp/db.all.sql;
1 第一種方法: 2 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql 3 第二種方法: 4 登錄MySQL,執行source命令,後面的文件名要用絕對路徑. 5 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 6 ...... 7 mysql> use mysql; 8 mysql> source /tmp/db.table.sql;
1 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 2 ...... 3 mysql> use mysql; 4 mysql> LOAD DATA INFILE '/tmp/mysql_user.txt' INTO TABLE user ;
1 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 2 ...... 3 mysql> use mysql; 4 mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
1 mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 2 ...... 3 mysql> use mysql; 4 # txt 5 mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user; 6 # csv 7 mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
-u$USER 用戶名
-p$PASSWD 密碼
-h127.0.0.1 如果連接遠程服務器,請用對應的主機名或者IP地址替換
-P3306 端口
--default-character-set=utf8 指定字符集
--skip-column-names 不顯示數據列的名字
-B 以批處理的方式運行mysql程序.查詢結果將顯示為制表符間隔格式.
-e 執行命令後,退出
-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語句不帶LOCAL關鍵字,就在MySQL的服務器上直接讀取文件,且要具有FILE權限.
如果帶LOCAL關鍵字,就在客戶端本地讀取數據文件,通過網絡傳到MySQL.
LOAD DATA語句,同樣被記錄到binlog,不過是內部的機制.
SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個文件中,該文件被創建到服務器主機上。
SELECT...INTO OUTFILE是LOAD DATA INFILE的補語;用於語句的exort_options部分的語法包括部分FIELDS和LINES子句,這些子句與LOAD DATA INFILE語句同時使用。
在下面的例子中,生成一個文件,各值用逗號隔開。這種格式可以被許多程序使用
SELECT * INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM mysql.user;
將mysql數據庫的user表的數據導出到/tmp/result.txt
SELECT...INTO OUTFILE只能導出數據,不能導出結構,一般和load data聯合使用。
LOAD DATA INFILE語句用於高速地從一個文本文件中讀取行,並裝入一個表中。文件名稱必須為一個文字字符串。
由character_set_database系統變量指示的字符集被用於解釋文件中的信息。
LOAD DATA LOCAL INFILE '/tmp/result.txt' INTO TABLE test.user
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
把/tmp/result.txt的數據導入到test數據庫的user表。
FIELDS TERMINATED BY ',' 字段間分割符采用,號
OPTIONALLY ENCLOSED BY '"' 用"號將字段包圍,對數值型無效
LINES TERMINATED BY '\n' 記錄間隔符采用\n換行符
注:原文鏈接http://www.cnblogs.com/ggjucheng/archive/2012/11/13/2768485.html