如何更改Mysql的连接排序规则

时间:2016-08-15 03:57:07

标签: mysql collation

如何更改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

1 个答案:

答案 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数据库屏幕上执行此操作(始终将其更新为最新版本!)