MySql 之UUID()

mysql中做了个定时执行的事件,发现原来起作用,现在不行了。

调用/var/lib/mysql中的错误日志文件,发现一句:

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.

原来目前用的mysql版本低,UUID函数不支持MySQL 复制的STATEMENT模式。

先改代码吧,保证对低版本的兼容性:

BEGIN
-- UUID函数属于不确定性函数,为此不支持MySQL 复制的STATEMENT模式,但是支持MIXED、ROW二种模式
-- 在复制模式下,需要用到UUID()函数,则一定要使用基于行/混合模式复制方式。
set binlog_format = MIXED;
insert into Users(userName,guid,userpinyin,userpy,uper)
select DISTINCT userName, UUID(), to_pinyin(userName),to_pinyinsx(userName),Domain from t_zhangdan a
where not exists(select 1 from Users where userName=a.userName);
END

时间: 2024-08-05 18:01:29

MySql 之UUID()的相关文章

Possible MySQL server UUID duplication for server

?? 在mysql enterprise monitor监控过程中出现这样的event事件,Topic: Possible MySQL server UUID duplication for server 事件,从该提示的描述来看貌似是存在重复的uuid,而实际上主从关系并不存在重复的uuid.主从关系是通过xtrabackup来构建的.那到底是哪里的问题呢?下文是描述基于xtrabackup复制时导致监控出现重复uuid的问题. 1.故障现象Topic: Possible MySQL serv

mysql 生成UUID() 即 ORACLE 中的guid()函数

MYSQL 生成UUID 即 guid 函数-- 带 - 的UUIDselect UUID() -- 去掉 - 的UUIDselect replace(uuid(),'-','') 一个表的数据插入另一个表中. INSERT INTO 目标表 SELECT * FROM 来源表; INSERT INTO目标表 (字段1, 字段2, ...)SELECT字段1, 字段2, ...FROM来源表 ; 原文地址:https://www.cnblogs.com/chxl800/p/10716665.ht

[转载]MySQL UUID() 函数

目录 目录 一 引子 二 MySQL UUID() 函数 三 复制中的 UUID()四 UUID_SHORT() 函数 3.1 实验环境介绍 3.2 搭建复制环境 3.3 基于 STATEMENT 模式 3.4 基于 MIXED 模式 3.5 基于 ROW 模式 五 小结 六 Ref 文/温国兵 一 引子 在 MySQL 中,可以有如下几种途径实现唯一值: 自增序列 UUID() 函数 程序自定义 UUID 基于 16 进制,由 32 位小写的 16 进制数字组成,如下: aaaaaaaa-bb

MySQL UUID函数的详解(转)

MySQL UUID函数的详解 MySQL中可以有二类用于生成唯一值性质的工具:UUID()函数和自增序列,那么二者有何区别呢?我们就此对比下各自的特性及异同点: l  都可以实现生成唯一值的功能: l  UUID是可以生成时间.空间上都独一无二的值:自增序列只能生成基于表内的唯 一值,且需要搭配使其为唯一的主键或唯一索引: l  实现方式不一样,UUID是随机+规则组合而成的,而自增序列是控制一个值逐步增长的: l  UUID产生的是字符串类型值,固定长度为:36个字符,而自增序列产生的是整数

MySQL主从复制

原理:利用mysql二进制日志文件,实现数据同步 步骤: 一.配置主库(Master) 1. 修改主库my.cnf配置文件,加入如下配置 [[email protected] ~]# nano -w /etc/my.cnf [mysqld] log-bin=mysql-bin server-id=1 2. 重启mysql,使配置生效 [[email protected] ~]# service mysqld restart 3. 以root登录mysql,创建主从复制用户并授权主从复制 [[em

不停止MySQL服务增加从库的两种方式

转载自:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具

MySQL(5.6) 函数

字符串函数 ASCII(str) 说明:返回字符串 str 最左边字符的 ASCII 值 mysql> SELECT ASCII('2'); -> 50 mysql> SELECT ASCII(2); -> 50 mysql> SELECT ASCII('a'); -> 97 mysql> SELECT ASCII(''); -> 0 mysql> SELECT ASCII(NULL); -> NULL BIN(N) 说明:返回数值 N 的二进制

不停止 MySQL 服务增加从库的两种方式

不停止 MySQL 服务增加从库的两种方式 提交 我的评论 加载中 已评论 不停止 MySQL 服务增加从库的两种方式 2015-07-12 数据库开发 数据库开发 数据库开发 微信号 DBDevs 功能介绍 分享数据库相关技术文章.教程和工具,另外还包括数据库相关的工作.偶尔也谈谈程序员人生 :) (点击上方蓝字,快速关注我们) 作者:李振良 网址:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业

MySQL 5.7 Replication 相关新功能说明

背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关,所以本文将针对这些新特性放一起进行说明,篇幅可能稍长,本文使用的MySQL版本是5.7.13. 1,多源复制(多主一从) MySQL在5.7之后才支持多源复制,之前介绍过MariaDB 多主一从 搭建测试说明,现在介绍如何在MySQL上做多主一从,具体的方法说明可以查看官方文档. 原理:多源复制加入