最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

关于MySQL主从复制中UUID的警告信息

来源:动视网 责编:小采 时间:2020-11-09 12:39:28
文档

关于MySQL主从复制中UUID的警告信息

关于MySQL主从复制中UUID的警告信息:最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Slave 产生的值和 M 最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Sla
推荐度:
导读关于MySQL主从复制中UUID的警告信息:最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Slave 产生的值和 M 最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Sla


最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Slave 产生的值和 M

最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Slave 产生的值和 Master不一致, 警告信息大致如下:

140522 15:11:10 [Warning]
Unsafe statement written to the binary log
using statement format since BINLOG_FORMAT = STATEMENT.
Statement is unsafe because it uses a system function
that may return a different value on the slave.
Statement:
insert into t_user(userId,userName) values(uuid(),'FunYoung')

大致翻译为中文如下所示:

140522 15:11:10 [警告]
因为使用的格式是 BINLOG_FORMAT = STATEMENT,
所以写入到二进制日志中的语句可能是不安全的.
语句不安全是因为使用了一个系统函数,
在 slave从服务器上执行可能会生成不一致的数值.
语句如下:
insert into t_user(userId,userName) values(uuid(),'FunYoung')

看样子是说,因为slave的 UUID() 函数产生的值可能和Master的不一致,所以使用 BINLOG_FORMAT = STATEMENT这种日志格式是不安全的。

MySQL主从复制配置

在网上找了一些资料,显示 5.0 版本是绝对有问题的,怎么办呢? 要么修改实现,比如在应用层生成 UUID,要么就采用基于行,而不是基于语句的二进制日志格式。

据说 5.0 以后是不一定的,,翻看了一些官方文档,好像 5.6 版本修正了这个问题。 参考链接: 22 Changes in MySQL 5.6.0

还有个是09年的文档,说是当时有这个问题 : https://drupal.org/node/502622

还有一个更详细的文章: Beware of MySQL 5.6 server UUID when cloning slaves

我们使用的是MariaDB5.5,应该是兼容 MySQL5.5吧,经排查这个问题系统已经自己解决了。

MariaDB [(none)]> select version();
+--------------------+
| version() |
+--------------------+
| 5.5.34-MariaDB-log |
+--------------------+
1 row in set (0.00 sec)

如果你遇到这个问题,假如还可以升级数据库系统,那就升级到最新版那就没事了。

如果不能升级DMBS,那么就需要在应用层,或者采用 基于行的复制方式 了。

更多详情见请继续阅读下一页的精彩内容:

文档

关于MySQL主从复制中UUID的警告信息

关于MySQL主从复制中UUID的警告信息:最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Slave 产生的值和 M 最近在查看MariaDB主从复制服务器 Master 的错误日志时看到很多条警告信息,都是提示 UUID()函数不安全,可能 Sla
推荐度:
标签: 警告 mysql 主从
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top