2.开启Binary Logging

介绍

要启用binlog,您必须设置log_bin和server_id并重新启动服务器。您可以在log_bin本身中提及路径和基本名称。例如,log_bin设置为/data/mysql/binlogs/server1,二进制日志存储在/data/mysql/binlogs文件夹中,名称为server1.000001,server1.000002,依此类推。每次启动或刷新日志或当前日志的大小达到max_binlog_size时,服务器都会在序列中创建一个新文件。server1.index用于管理binlog文件的位置。

配置

1 编辑配置文件

启用二进制日志记录并设置server_id。

shell> sudo vi /etc/my.cnf
[mysqld]
log_bin = /data/mysql/binlogs/server1
server_id = 100

2 重启数据库

shell> sudo systemctl restart mysql

3 验证安装情况

mysql> SHOW VARIABLES LIKE 'log_bin%';

在这里插入图片描述

4 验证安装情况

mysql> SHOW MASTER LOGS;

在这里插入图片描述

shell> ls -lhtr /app/mysql/mysqldata/3306/binlog/

在这里插入图片描述

mysql> SHOW MASTER STATUS;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是因为MySQL开启了二进制日志记录(binary logging),并且函数或存储过程的声明中没有指定DETERMINISTIC、NO SQL或READS SQL DATA属性。 要解决这个问题,有以下两个方法: 方法一:使用log_bin_trust_function_creators变量 由于这个错误是因为MySQL开启了二进制日志记录,可以通过修改log_bin_trust_function_creators变量来解决这个问题。 1. 登录到MySQL客户端。 2. 运行以下命令: ``` SET GLOBAL log_bin_trust_function_creators = 1; ``` 这将允许创建没有DETERMINISTIC、NO SQL或READS SQL DATA属性的函数或存储过程,并将它们记录到二进制日志中。 3. 重新创建函数或存储过程。 方法二:指定DETERMINISTIC、NO SQL或READS SQL DATA属性 如果您不想修改log_bin_trust_function_creators变量,可以通过在函数或存储过程的声明中指定DETERMINISTIC、NO SQL或READS SQL DATA属性来解决这个问题。 1. 在创建函数或存储过程的声明中,添加以下属性之一: - DETERMINISTIC:如果函数或存储过程返回相同的结果,则指定函数或存储过程是确定性的。 - NO SQL:指定函数或存储过程不会修改数据库中的数据。 - READS SQL DATA:指定函数或存储过程只会读取数据库中的数据。 例如,以下是一个创建函数并指定DETERMINISTIC属性的示例: ``` CREATE FUNCTION my_function_name (param1 INT, param2 VARCHAR(50)) RETURNS INT DETERMINISTIC BEGIN -- function body END; ``` 2. 重新创建函数或存储过程。 这样,函数或存储过程就会被正确创建,并且可以记录到二进制日志中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值