2

导出

一、导出数据库

包含数据对象和数据

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;

Justins
18 声望0 粉丝