5.7版本的mysql打开binlog后重启报错

2024年 7月 20日 36.3k 0

有个mysql数据库服务,之前没有打开binlog,业务通过修改mysql配置文件my.cnf,添加配置:

log_bin=on

重启实例后报错:May 21 15:24:06 iZbp1frzobeoohjrekaca7Z mysqld: 2024-05-21T07:24:06.491333Z 0 [ERROR] You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation

报错的意思是:启用了binlog,但是还没有提供必需的server_id

当前数据库版本是5.7,配置文件中没有指定server_id,我们查看下server_id的默认值。(见:https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-options.html#sysvar_server_id)

5.7版本的mysql打开binlog后重启报错-1

5.7版本,server_id的默认值是0。

这个文档中的第一句正好也说明了这一问题的原因:

This variable specifies the server ID. In MySQL 5.7, server_id must be specified if binary logging is enabled, otherwise the server is not allowed to start.

在MySQL 5.7中,如果启用二进制日志记录,必须指定server_id,否则服务器不允许启动。

我们可以将server_id改为1,以解决问题。

ps: 在MySQL 8.0中,系统变量server_id默认设置为1。当启用二进制日志记录时,服务器现在可以使用这个默认服务器ID启动,并不会报错。

5.7如何打开binlog

1.修改配置文件,my.cnf

#
log_bin=on
# log-bin日志文件的名字为mysql-bin,以及其存储路径
log-bin=/path/mysql-bin
log-bin-index=/path/mysql-bin.index
server_id = 1

启用二进制日志记录后,服务器将所有更改数据的语句记录到二进制日志中,二进制日志用于备份和复制。

与binlog相关的启动选项和系统变量

log-bin: 指定二进制日志文件的基本名称。二进制日志是具有基本名称和数字扩展名的文件序列。--log-bin选项值是日志序列的基本名称。服务器通过在基本名称中添加数字后缀来按顺序创建二进制日志文件。如:mysql-bin.000888、mysql-bin.000889、mysql-bin.000890...。

二进制日志文件的默认位置是data目录。我们也可以使用--log-bin选项来指定一个替代位置,比如在基本名称中添加一个前置的绝对路径名来指定一个不同的目录,如:log-bin=/home/mysql/data3089/mysql/mysql-bin 。

在MySQL 8.0中,如果没有提供--log-bin选项,默认的基本名称是binlog。为了与MySQL 5.7兼容,如果--log-bin选项没有提供字符串或提供空字符串,则默认的基本名称是host_name-bin,使用主机的名称。默认位置是数据目录。

我们可以通过查询log_bin_basename系统变量来查看--log-bin设置的值。

--log-bin-index: 二进制日志索引文件的名称,其中包含二进制日志文件的名称。默认情况下,它的名称是--log-bin参数指定的基本名称,并加上扩展名.index。如:log-bin-index=/home/mysql/data3089/mysql/mysql-bin.index

如果不指定--log-bin,则默认的二进制日志索引文件名为binlog.index。

我们可以通过查询log-log-index系统变量来查看--log-bin-index设置的值。

5.7版本的mysql打开binlog后重启报错-2

参考:

https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin_basename

5.7版本的mysql打开binlog后重启报错-3

点个“赞 or 在看” 你最好看!

喜欢,就关注我吧!5.7版本的mysql打开binlog后重启报错-4

👇👇👇 谢谢各位老板啦!!!

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论