在使用MySQL數據庫時,經常需要備份和恢復數據庫,通過導出sql文件備份和直接執行sql文件恢復是非常便捷的方式。本篇博客主要介紹如何對MySQL數據庫通過cmd命令導出和導入sql文件。
1.導出sql文件
導出sql文件可以使用。主要有如下幾種操作:
①導出整個數據庫(包括數據庫中的數據):
mysqldump -hip -Pport -u username -ppassword dbname > dbname.sql;
mysqldump --single-transaction --host $ip -P $ip_port -u$dbUser $dbName --skip-lock-tables --tables $table > test.sql
mysql --default-character-set=utf8 -h$IP -P$PORT -u$USER -p$PASSWORD $DBNAME --skip-column-names -e "select * from db.table " | sed -e 's/\/\\N/g' >> down.txt
②導出數據庫中的數據表(包括數據表中的數據):
mysqldump -u username -ppassword dbname tablename > tablename.sql;
③導出數據庫結構(不包括數據,只有創建數據表語句):
mysqldump -u username -ppassword -d dbname > dbname.sql;
④導出數據庫中數據表的表結構(不包括數據如何導出數據庫表結構如何導出數據庫表結構,只有創建數據表語句):
mysqldump -u username -ppassword -d dbname tablename > tablename.sql
2.導入sql文件
①在命令窗口輸入mysql -hip -Pport -uroot -proot(兩個root依次表示登陸MySQL數據庫的用戶名和密碼,根據自己的情況更改),接著輸入show ;(注意一定要輸入分號;否則需要關閉命令窗口重新操作)
假設MySQL數據庫中已經存在名為的空數據庫。同上1中的①②步打開命令窗口。
②接著輸入use (數據庫中已經存在名為的空數據庫,先前已創建的),然后執行 /var/lib/mysql-files/aa.sql(sql文件路徑根據自己的實際情況而定在mysql客戶端所在機器的目錄中)即可成功導入sql文件(進入MySQL數據可以看到數據庫下已經創建了多張數據表)
show ;可以查看當前數據庫內所有表。
mysql -uroot -p123456aA -Djettomanagerdev -e "source /var/lib/mysql-files/jettomanagerdev.sql";
mysql --default-character-set=utf8 -h$IP -P$PORT -u$USER -p$PASSWORD $DBNAME -e "load data local infile 'down.txt' into table db.table FIELDS ESCAPED BY '\/' LINES TERMINATED BY '\n' (col1, col2)"
如果你指定關鍵詞,那么MySQL將會等到沒有其他人讀這個表的時候
如果指定local關鍵詞,則表明從客戶主機讀文件
分隔符的使用
關鍵字指定了文件記段的分割格式,如果用到這個關鍵字,MySQL剖析器希望
看到至少有下面的一個選項:
by 分隔符:意思是以什么字符作為分隔符
by字段括起字符
by轉義字符
by 描述字段的分隔符,默認 情況下是tab字符(\t)
by描述的是字段的括起字符。
by描述的轉義字符。默認的是反斜杠 (:\ )