mysql中導出結構、數據以及存儲過程和函數


轉自 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM