为什么要开启 bin-log
mysql 作为关系型数据库,所有的事务操作在记录到数据库之前都会先将数据记录到日志文件,因此日志文件至关重要,它是mysql 备份和恢复的基石
查看我的数据库是否开启了 bin-log
show variables like '%slog_bin%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
6 rows in set (0.00 sec)
如果 log_bin =OFF,log_bin_basename, log_bin_index 为空,则代表没有开启 需要开启
开启bin-log
首先需要找到mysql配置文件的路径,推荐大家使用 locate 命令来查找 locate 命令不需要遍历目录下查找,因为它直接从Linux的 locatedb 数据库里面查找 ,这个数据库是Linux 自动创建并更新的一个本地数据库,在使用之前请先更新一下该数据库,将数据库更新到最新的状态 使用
updatedb
命令,手动更新数据库
locate my.cnf
找到配置文件之后,在配置文件
[mysqld]
里面加入以下几个配置 (将路径改成你自己的路径即可)
log_bin=/var/lib/mysql/BIN
log_bin_index=/var/lib/mysql/mysql-bin.index
然后重启数据库 再查询
mysql> show variables like '%log_bin%';
+---------------------------------+-------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/BIN |
| log_bin_index | /var/lib/mysql/BIN.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+-------------------------+