电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

修改MySQL数据库的字符集和排序规则

来源:金蝶云社区作者:金蝶2024-09-236

修改MySQL数据库的字符集和排序规则

苍穹要求使用的mysql数据库的字符集和排序规则是 utf8mb4和utf8mb4_unicode_ci。很多客户或厂商提供的MySQL服务没有按照这个要求配置。导致苍穹使用过程中报错或排序规则不一致时性能卡慢情况,所以需要统一规范数据库的字符集和排序规则。


修改数据库的字符集和排序规则有两种方法:

一是中断所有业务后,需要修改主配置文件,清空数据库后,重新导入导出,方法比较快。

二是在线修改,耗时会比较久。


以下详细讲一下第二种方法,在线修改数据库字符集和排序规则方法。

-- 参数修改

-- 命令行修改,永久生效需要在参数文件中修改

SET character_set_client     = 'utf8mb4';
SET character_set_connection    = 'utf8mb4';
SET character_set_database    = 'utf8mb4';
SET character_set_results     = 'utf8mb4';
SET character_set_server     = 'utf8mb4';
SET collation_connection        = 'utf8mb4_unicode_ci';
SET collation_database        = 'utf8mb4_unicode_ci';
SET collation_server         = 'utf8mb4_unicode_ci';

-- 参数文件修改(需要重启数据库生效)
[client]
init_connect               = 'SET NAMES utf8mb4'
character-set-server           = utf8mb4
default-character-set           = utf8mb4
[mysqld]
init_connect                = 'SET NAMES utf8mb4'
init_connect                = 'SET collation_connection = utf8mb4_unicode_ci'
character-set-server           = utf8mb4
collation-server             = utf8mb4_unicode_ci



-- 数据库级别(新建表生效,已有表不生效)
select concat('alter database ',schema_name,' charset=utf8mb4 collate=utf8mb4_unicode_ci;')
from information_schema.schemata
where schema_name not in ('information_schema','mysql','performance_schema','sys','test');

这个sql语句会找出不是utf8mb4_unicode_ci排序规则的库名,并生成出alter语,然后执行alter语句进行修改


-- 已有表排序规则修改
-- 修改过程会锁表,只能读不能写入,请选择业务低谷期,谨慎操作!!!
SELECT CONCAT('ALTER TABLE ', table_schema,'.',table_name, ' CONVERT TO CHARACTER SET  utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM informati

修改MySQL数据库的字符集和排序规则

苍穹要求使用的mysql数据库的字符集和排序规则是 utf8mb4和utf8mb4_unicode_ci。很多客户或厂商提供的MySQL服务没有按照这个要求配置。导...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信