1、开启二进制日志:
[root@rocky8 ~]#vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
log_bin=/data/mysql/mysql-log mysql-log为二进制日志前缀
2、建立/data/mysql/mysql-log,并更改属主和属组
[root@rocky8 ~]#ll /data/mysql -d
drwxr-xr-x 2 mysql mysql 64 Aug 30 20:28 /data/mysql
3、重启mysqld服务
[root@rocky8 ~]#systemctl restart mysqld.service 
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
5、找了很多久没找到问题所在,后来百度,才找到原因:
# 5.7及以上版本的话,不加server-id重启mysql服务会报错,5.7以下版本就不用加了
所以必须添加server-id这个参数!随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了。
[mysqld]
server-id=99
log_bin=/data/mysql/log #日志前缀最好也不要一样,我试了几次,前缀一样也有可能报错
还有一种配置方式(指定三个参数):
log_bin=ON
log_bin_basename=/var/lib/mysql/mysql-bin
log_bin_index=/var/lib/mysql/mysql-bin.index
第一个参数是打开binlog日志
第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件
第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
6、重启服务
[root@rocky8 ~]#systemctl restart mysqld.service 
[root@rocky8 ~]#ll /data/mysql
total 12
-rw-r----- 1 mysql mysql 156 Aug 30 20:28 log.000001
-rw-r----- 1 mysql mysql 23 Aug 30 20:28 log.index