备份所有数据库
mysqldump -u root -p -h 127.0.0.1 --all-databases > dump.sql
备份多个数据库
mysqldump -u root -p -h 127.0.0.1 --databases databaseName1 databaseName2 > dump.sql
备份单个数据库(需要手动创建数据库指定字符集)
mysqldump test > dump.sql
恢复备份的数据
terminal:
1.mysql -u root -p -e "source /tmp/dump.sql"
2.mysql < dump.sql
console:
source dump.sql
备份表结构无数据(-d)
mysqldump -u root -p -h 127.0.0.1 -d --databases databaseName1 > dump.sql
备份单独多个表
mysqldump -u root -p -h 127.0.0.1 databaseName1 tableName tableName1 > dump.sql
Terminal create database
mysqladmin create databaseName1
以分隔文本格式备份
mysqldump --tab=/dir databaseName1
恢复分隔文本格式备份
terminal:
恢复表结构:mysql db1 < t1.sql
恢复数据:mysqlimport db1 t1.txt
console:
恢复表结构:source t1.sql
恢复数据:load data infile 't1.txt' into table t1;
备份函数存储过程事件
--events:转储事件计划程序事件
--routines:转储存储过程和函数
--triggers:转储表的触发器
禁止导入数据
--no-data, -d
导出触发器。该选项默认启用
--triggers
禁止导出触发器
--skip-triggers
每个数据库创建之前添加drop数据库语句
--add-drop-database
每个数据表创建之前添加drop数据表语句
--add-drop-table
设置默认字符集
--default-character-set=utf8
导出事件
--events , -E
导出存储过程
--routines , -R
禁止创建表的语句出现
--no-create-db, -n
创建函数触发器前,先删除
--add-drop-trigger
没有建表语句
--no-create-info , -t
根据二进制日志文件时间恢复数据
mysqlbinlog --start-datetime="2018-08-29 10:43:28" --stop-datetime="2018-08-29 10:44:00" ./../../mysql/data/binaryLog.000003 | mysql -uroot -p
根据二进制日志文件位置恢复数据
mysqlbinlog --start-position=3239 --stop-position=3398 ./../../mysql/data/binaryLog.000003 | mysql -uroot -p
把二进制日志写入文件
mysqlbinlog --start-datetime="2018-08-29 10:43:28" --stop-datetime="2018-08-29 10:44:00" ./../../mysql/data/binaryLog.000003 > test.sql