萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL導入導出命令的例子

MySQL導入導出命令的例子

MySQL導入導出命令就那幾條固定的我們只需要進行一個簡單的設置就可以了,今天小編來為各位介紹一下關於MySQL導入導出命令的例子,具體如下了。

在網站遷移的過程中,除了打包轉移網站文件,最頭痛的就是MySQL導出和導入,如果數據庫不大,PHPMyAdmin導入導出還是很方便的,一旦數據庫較大,超過PHP設置的上傳大小和執行時間,導入導出就很麻煩,加上帶寬有限,上傳速度較慢,一下子就超時了。如果有SSH權限,可以直接在服務器上用SSH命令行來操作,70-80MB的數據庫,配合wget命令,幾秒鐘就完成了,速度非常快。

MySQL導出

mysqldump --add-drop-table -h mysql.ezloo.com -u username -p dbname > dbname.sql

正確輸入MySQL用戶密碼之後,數據庫就會被導出到當前的目錄下。如果你使用的是本機,可以不要加“-h mysql.ezloo.com”參數。mysqldump命令功能還有很多,對我們遷移網站來說,懂得導出就OK。

例子

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

2.導出指定庫到本地的目錄(例如mysql庫)
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql

3.導出某個庫的表到本地的目錄(例如mysql庫的user表)
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql

4.導出指定庫的表(僅數據)到本地的目錄(例如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

5.導出某個庫的所有表結構
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql

6.導出某個查詢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

7.導出某個查詢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 -h mysql.ezloo.com -u username -p dbname < dbname.sql

導入的語法跟導出的類似,如果你導入到本機,可以不要加“-h mysql.ezloo.com”參數。當MySQL數據庫夠大的時候,比PHPMyAdmin導入效率高很多。

例子
1.恢復全庫數據到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;
2.恢復某個庫的數據(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;
3.恢復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 ;
4.恢復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 ',';
5.恢復本地的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 ',';


Linux下MySQL的備份與還原

2.1 備份

[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysqldump -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,輸入密碼即可。

copyright © 萬盛學電腦網 all rights reserved