1. 备份和还原:
mysqldump备份:
备份:
mysqldump -u 用户名 -p 数据库名 > /备份路径、备份文件名(备份整个数据库)
mysqldump -u用户名 -p 数据库名 表名 > /备份路径、备份文件名(备份数据库表)
备份多个库: --databases 库1,库2
备份所有库:--all-databases
备份多个表:库名 表1 表2
还原:mysql 数据库 < 备份文件
注意:还原时,若导入的是某表,请指定导入到哪一库中。
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