导出
一、导出数据库
包含数据对象和数据
mysqldump -hhostname -uusername -ppassword databasename > /home/justin/databasename.sql
二、导出数据库表结构
只有数据库表结构
mysqldump -hhostname -uusername -ppassword -d databasename > /home/justin/databasename.sql
三、导出存储过程及函数
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 > /home/justin/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
导入
1、首先建空数据库
mysql>create database test;
2、导入数据库
方法一:
(1)选择数据库
mysql>use test;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/justin/test.sql;
方法二:
mysql -hhostname -uusername -ppassword abc < /home/justin/test.sql;