1. 备份和还原:
mysqldump备份:
备份:
mysqldump -u 用户名 -p 数据库名 > /备份路径、备份文件名(备份整个数据库)
mysqldump -u用户名 -p 数据库名 表名 > /备份路径、备份文件名(备份数据库表)
备份多个库: --databases 库1,库2
备份所有库:–all-databases
备份多个表:库名 表1 表2
还原:mysql 数据库 < 备份文件
注意:还原时,若导入的是某表,请指定导入到哪一库中。
备份命令
#备份所有数据库
#mysqldump -u root -p --all-database > all_database_sql
#备份mysql数据库
#mysqldump -u root -p --database mysql > mysql_database_sql
#备份all_database_sql数据库备份文件还原数据库
#mysql -u root -p < all_database_sql
#使用user_table数据库备份文件还原数据表
#mysql -u root -p mysql <user_table
还原命令
使用mysqldump 备份所有的数据库,默认该工具
#mysqldump --all-database >bak.sql
备份指定的数据库db1、db2
#mysqldump --database db1 db2 > bak.sql
备份db数据库,仅备份一个数据库时,--database可以省略
#mysqldump db >bak.sql
#mysqldump --database db4 >bak.sql
使用mysql命令读取备份文件,实现数据还原功能
#mysqldump < bak.sql
#mysqldump db4 <bak.sql
2. mysqlhotcopy 备份:
备份:mysqlhotcopy --flushlog -u=‘用户’ -p=‘密码’ --regexp=正则 备份目录
还原:cp -a 备份目录 数据目录(/var/lib/mysql)
3.mysqldump和mysqlhotcopy示例:
3.1 mysql 备份和还原
#把数据库aa备份到/root目录下:
mysqldump -uroot -p aa> ~/aa.sql
#模拟数据库aa丢失(删除数据库aa)
mysql> drop database aa;
#通过aa.sql文件还原(指定导入到那个库中)
mysql -uroot -p test < aa.sql
#备份多个数据库(–databases)
mysqldump -uroot -p --databases aa test > abc.sql
#还原(先模拟丢失)
mysql -uroot -p < abc.sql
#备份有规则的数据库
mysql> create database a1; #连续创建三个a开头的数据库
mysqlhotcopy --flushlog -u='root' -p='456' --regexp=^a
还原(先模拟丢失)
mysql> drop database a1; #顺序删除a开头的数据库
cp -a /mnt/* /var/lib/mysql/ #复制产生的文件到数据库目录下
#登录数据库查看即可
4.mysql-binlog日志文件
二进制日志(log-bin日志):所有对数据库状态更改的操作(create、drop、update等)
修改my.cnf配置文件开启binlog日志记录功能
#vim /etc/my.cnf
log-bin=mysql-bin #启动二进制日志
按时间还原:
--start-datatime
--stop-datetime
格式:mysqlbinlog --start-datetime 'YY-MM-DD HH:MM:SS' --stop-datetime 'YY-MM-DD'
'HH:MM:SS' 二进制日志|mysql -uroot -p
按文件大小还原:
--start-position
--stop-position
eg:
# mysqlbinlog --start datetime "2019-09-09 16:16:16" --stop-datetime "2019-09-09 16:26:16" -mysql-bin.000001 | mysql -uroot -p123456
注意:所选择的时间一定要完整包括所有动作(可以在原来的基础上稍微增加点时间)
[root@test mysql]# mysqlbinlog musql bin.000001
参考链接 :
MySQL的备份和还原常见命令 :https://www.jianshu.com/p/b3017e08f5fa