如何更改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
更改为utf8_unicode_ci
?
答案 0 :(得分:7)
查看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服务器服务。
对于DB排序规则,您可以使用以下SQL:
ALTER DATABASE <database_name> CHARACTER SET utf8 COLLATE utf8_unicode_ci;
或者您可以在MySQL Workbench的Alter数据库屏幕上执行此操作(始终将其更新为最新版本!)