mysql数据库的备份(导出)和恢复(导入)
这里讲的是Linux系统下的操作
首先你要安装数据库,而且配置好环境变量
现在说说数据库的导出:
mysqldump -h hostname -u username -p databasename > databasename.sql
这里说简单一下这些参数的意义
-h 后面接的是主机名(如果是本机可以不需要)
-u 登录数据库的用户名
-p 后面接的是密码,但是一般不会将密码文明写出来,不写会执行的时候要你输入密码
再说一点,如果需要备份多个数据库需要添加--databases参数
例:
mysqldump -h hostname -u username -p --databases databasename1 databasename2 > backMysql.sql
如果你只想要导出数据库的表结构,可以在数据库前面加个-d参数,这样就不会将数据导出来
导入:
数据库的导入就简单多了,你需要一个备份好的数据库脚本
然后登陆到数据库,执行
source 你的数据库备份的路径
最后说一下mysqldump命令的一些常用参数吧
-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
所以导出存储过程及函数可以这么写
mysqldump -hhostname -uusername -p -ntd -R databasename > prorandfunc.sql