轉自 https://www.cnblogs.com/qlqwjy/p/8325823.html
一、導出數據庫
我的mysql安裝目錄是D:\Program Files\MySQL\MySQL Server 5.5\bin\,導出文件預計放在D:\sql\
在mysql的安裝目錄執行命令: mysqldump -hhostname -uusername -ppassword databasename > d:\sql\databasename.sql
在mysql5.7的時候報出一個警告,但是數據導出成功:
現在換一種方式解決上述問題:
創建一my.cnf文件,我放在與mysqldump.exe同級目錄下面:C:\Program Files\MySQL\MySQL Server 5.7\bin
[client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8mb4 host = localhost user = root password = '123456'
重新導出:(exam9為數據庫名字)
C:\Program Files\MySQL\MySQL Server 5.7>mysqldump --defaults-extra-file=my.cnf e xam9 > e:/database.sql
不會報警告:
二、導出數據庫表結構
第一種:(報警告,但是執行成功!)
執行命令: mysqldump -hhostname -uusername -ppassword -d databasename > d:\sql\databasename.sql
C:\Program Files\MySQL\MySQL Server 5.7>mysqldump -uroot -p123456 -d exam9 >e:/j iegou.sql mysqldump: [Warning] Using a password on the command line interface can be insec ure.
第二種:(借助上面的cnf文件,不會報警告)
C:\Program Files\MySQL\MySQL Server 5.7>mysqldump --defaults-extra-file=my.cnf - d exam9 > e:/jiegou111.sql C:\Program Files\MySQL\MySQL Server 5.7>
三、導出數據庫表結構以及數據
第一種:(報警告,但是執行成功!)
C:\Program Files\MySQL\MySQL Server 5.7>mysqldump -uroot -p123456 -t exam9 >e:/s huju.sql mysqldump: [Warning] Using a password on the command line interface can be insec ure.
第二種:(借助上面的cnf文件,不會報警告)
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqldump --defaults-extra-file=my.c nf -t exam9 > e:/shuju111.sql C:\Program Files\MySQL\MySQL Server 5.7\bin>
四、導出存儲過程及函數
1、查詢數據庫中的存儲過程和函數
方法一:
select `name` from mysql.proc where db = 'databasename' and `type` = 'PROCEDURE'; // 存儲過程
select `name` from mysql.proc where db = 'databasename' and `type` = 'FUNCTION' // 函數
方法二:
show procedure status;
show function status;
2、mysql導出存儲過程及函數
執行命令: mysqldump -hhostname -uusername -ppassword -ntd -R databasename > prorandfunc.sql
五、總結
-d 結構(--no-data:不導出任何數據,只導出數據庫表結構)
-t 數據(--no-create-info:只導出數據,而不添加CREATE TABLE 語句)
-n (--no-create-db:只導出數據,而不添加CREATE DATABASE 語句)
-R (--routines:導出存儲過程以及自定義函數)
-E (--events:導出事件)
--triggers (默認導出觸發器,使用--skip-triggers屏蔽導出)
-B (--databases:導出數據庫列表,單個庫時可省略)
--tables 表列表(單個表時可省略)
①同時導出結構以及數據時可同時省略-d和-t
②同時 不 導出結構和數據可使用-ntd
③只導出存儲過程和函數可使用-R -ntd
④導出所有(結構&數據&存儲過程&函數&事件&觸發器)使用-R -E(相當於①,省略了-d -t;觸發器默認導出)
⑤只導出結構&函數&事件&觸發器使用 -R -E -d