mysql存储过程1267,mysqlERROR1267(HY000):Illegalmixofcollations(utf8mb4_general_ci,COERCIBLE)....

在将MySQL数据库编码改为utf8mb4以支持emoji后,遇到执行存储过程TigAddUserPlainPw时出现1267错误。问题在于不同的字符集和校对集冲突。解决方案是修改存储过程代码,使用CONVERT和COLLATE明确指定utf8mb4_unicode_ci校对集,避免冲突。更新后的存储过程成功解决了错误。
摘要由CSDN通过智能技术生成

mysql数据库将数据库的编码格式改为了utf8mb4见该篇以便能够存储emoji表情">迁移服务器时,重建mysql数据库,将数据库的编码格式改为了utf8mb4(见该篇),以便能够存储emoji表情.

在遇到一个执行procedure报错 :

call TigAddUserPlainPw(‘db-properties’, NULL);

ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation '='

存储过程TigAddUserPlainPw代码:

create procedure TigAddUserPlainPw(_user_id varchar(2049) CHARSET utf8, _user_pw varchar(255) CHARSET utf8)

begin

case TigGetDBProperty('password-encoding')

when 'MD5-PASSWORD' then

call TigAddUser(_user_id, MD5(_user_pw));

when 'MD5-USERID-PASSWORD' then

call TigAddUser(_user_id, MD5(CONCAT(_user_id, _user_pw)));

when 'MD5-USERNAME-PASSWORD' then

call TigAddUser(_user_id, MD5(CONCAT(substring_index(_user_id, '@', 1), _user_pw)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值