MySQL匯入匯出命令的例子

來源:互聯網
上載者:User

在網站遷移的過程中,除了打包轉移網站檔案,最頭痛的就是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,輸入密碼即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.