如何更改 mysql 数据库的连接排序规则?
我在 ubuntu 14 中使用 Mysql workbench 5.5 和 mysql 5.5。
当我执行存储过程时,出现错误:
错误代码:1267。操作 '=' 的排序规则 (utf8_general_ci,IMPLICIT) 和 (utf8_unicode_ci,IMPLICIT) 的非法混合
我通过互联网搜索,其中有一个临时解决方案,即修改
COLLATE utf8_unicode_ci;
在存储过程中。
但我想在将来解决所有存储过程的这个问题。我已经发现
SHOW VARIABLES LIKE 'collation%';
返回这个。
collation_connection utf8_general_ci
collation_database utf8_unicode_ci
collation_server latin1_swedish_ci
我该如何改变utf8_general_ci
to utf8_unicode_ci
?
看看你的my.cnf
,在附近找到下面的内容collation_server
:
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
然后将排序规则变量更改为:
collation_connection utf8_unicode_ci
collation_server latin1_swedish_ci
记得重启MySQL服务器服务。
对于数据库排序规则,您可以使用以下 SQL:
ALTER DATABASE <database_name> CHARACTER SET utf8 COLLATE utf8_unicode_ci;
或者您可以在 MySQL Workbench 中的更改数据库屏幕上执行此操作(始终将其更新到最新版本!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)