MySQL命令行功能非常強大,甚至可以進行數據庫的備份,下面爲您介紹的MySQL命令行就用於備份數據庫,希望對您有所幫助。
注意,mysqldump命令在DOS的 mysql\bin 目錄下執行,不能在mysql環境下執行,因此,不能以分號“;”結尾。若已登錄mysql,請運行退出命令mysql> exit
1.MySQL命令行導出整個數據庫
導出文件默認是存在mysql\bin目錄下
mysqldump -u用戶名 -p密碼 數據庫名 > 導出的文件名
mysqldump -uroot -p123456 database_name > outfile_name.sql
2.MySQL命令行導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.MySQL命令行導出一個數據庫結構
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table
4.帶語言參數導出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
導入數據庫,常用source 命令
#進入mysql數據庫控制檯,mysql -u root -pmysql>use 數據庫mysql>set names utf8; (先確認編碼,如果不設置可能會出現亂碼,注意不是UTF-8) #然後使用source命令,後面參數爲腳本文件(如這裏用到的.sql)mysql>source d:\wcnc_db.sql
參考文獻:
http://www.cr173.com/html/18961_1.html
http://database.51cto.com/art/201010/229531.htm
如果mysqldump備份數據庫時出現when using LOCK TABLES
用mysqldump備份數據庫時,如果出現when using LOCK TABLES,解決辦法是加上 --skip-lock-tables
例如:
用mysqldump備份數據庫時出現
29: File './sq_ziyou/uc_applications.MYD'not found (Errcode: 24) when using LOCKTABLES
在數據庫名後加--skip-lock-tables即可。
即備份數據庫命令爲:
/命令目錄/mysqldump -u 用戶名 -p 數據庫名稱 --skip-lock-tables > ***.sql
或者
/命令目錄/mysqldump -u 用戶名 -p --skip-lock-tables 數據庫名稱> ***.sql
或者
導出 mysqldump
/命令目錄/mysqldump -h 線上數據庫IP -P 線上數據庫端口 -u 用戶名 -p --skip-lock-tables 數據庫名稱>db.sql
如果還提示某表被損壞了,需要先修復,
那麼就直接複製data目錄(一般如果數據庫已經損壞都無法通過mysqldump備份了)