导读
我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次。网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~
当然啦,备份数据/还原数据也是挺重要的,可以看我另一篇:点我直达
如果感觉这样还不安全,可以考虑授予用户权限:点我直达
介绍
记录着mysql数据库中的一些增删改操作(没有查询)
功能
数据复制(主从复制)
数据恢复
注意事项
开启二进制日志会有性能的消耗!!!
查看二进制日志是否开启
查看是否开启:show variables like 'log_bin%';
开启二进制日志
修改my.cnf文件
[mysqld]datadir=/usr/local/mysql/dataport = 3306sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESsymbolic-links=0max_connections=400innodb_file_per_table=1#表名大小写不明感,敏感为lower_case_table_names=1# skip-grant-tableslog-bin=/usr/local/mysql/log_bin_data/mysql-binserver-id=1
切换:cd /usr/local/mysql/创建目录(用于存放二进制日志):mkdir log_bin_data注意:1、log_bin_data必须要有mysql权限2、修改权限:chown -R mysql:mysql /usr/local/mysql/log_bin_data修改my.cnf: vim /usr/local/mysql/my.cnf在[mysqld]下添加log-bin=/usr/local/mysql/log_bin_data/mysql-binserver-id=1修改完之后,一定要重启mysql服务:service mysql restart
此时继续查看二进制日志是否开启,现在可以看到已经开启
查看binlog日志列表
show master logs;
刷新二进制日志
刷新/重启mysql服务,都会在加一个binlog日志文件
flush logs;
重置(清空)日志文件
有时候感觉日志文件没啥用,还占用空间,可以使用下面命令重置日志文件
登录mysql:mysql -uroot -proot删除binlog:reset master
二进制备份
备份好二进制日志文件之后,往表中插入一条记录,然后将数据库给删掉,等会使用二进制日志恢复数据库
描述:备份本地db2库,并压缩存放到/mysql_data_back下
切换:cd /usr/local/mysql/bin语法:./mysqldump -u用户 -p密码 -F --databases 数据库 | gzip > 路径+文件名备份:./mysqldump -uroot -proot -F --databases db2 | gzip > /mysql_data_back/db2.sql.gz新增一条记录:INSERT INTO `db2`.`nba_player`(`id`, `countryEn`, `teamName`, `birthDay`, `country`, `teamCityEn`, `code`, `displayAffiliation`, `displayName`, `schoolType`, `teamConference`, `teamConferenceEn`, `weight`, `teamCity`, `playYear`, `jerseyNo`, `teamNameEn`, `draft`, `displayNameEn`, `birthDayStr`, `heightValue`, `position`, `age`, `playerId`) VALUES (999999, 'Croatia', '快船', 858661200000, '克罗地亚', 'LA', 'ivica_zubac', 'Croatia', '伊维察 祖巴茨', '', '西部', 'Western', '108.9 公斤', '洛杉矶', 3, '40', 'Clippers', 2016, 'Ivica Zubac', '1997-03-18', 2.16, '中锋', 22, '1627826');