MySQL导出数据库、数据库表结构、存储过程及函数【⽤】⼀、导出数据库
我的mysql安装⽬录是D:\Program Files\MySQL\MySQL Server 5.5\bin\,导出⽂件预计放在D:\sql\
在mysql的安装⽬录执⾏命令: mysqldump -hhostname -uusername -ppassword databasename > d:\sql\databasename.sql
在mysql5.7的时候报出⼀个警告,但是数据导出成功:
现在换⼀种⽅式解决上述问题:
创建⼀myf⽂件,我放在与同级⽬录下⾯: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=myf 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=myf -
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
mysql视图和存储过程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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。