苍穹如何修改mysql数据库字符集相关

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

苍穹如何修改mysql数据库字符集相关

一 背景

苍穹mysql数据库标准字符集是utf8mb4_unicode_ci。人为默认配置了字符集utf8mb4_general_ci,导致数据库里面部分是utf8mb4_general_ci部分是utf8mb4_unicode_ci。苍穹系统报错如下。



二 mysql数据库修改utf8mb4_general_ci字符集为标准字符集utf8mb4_unicode_ci

停苍穹应用并关闭nginx

systemctl stop nginx

修改参数文件my.cnf字符集相关参数(主从节点都要改)

[mysqld]

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

skip-character-set-client-handshake

#忽略应用连接自己设置的字符编码,保持与全局设置一致

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

mysql数据库集群重启

停从库

systemctl  stop  mysql

重启主库

systemctl  restart  mysql

启从库

systemctl  start  mysql

主从同步检查

show slave status\G

主库连接数检查

show processlist

数据库整库备份

mysql数据库Xtrabackup工具整库备份参考链接如下

https://vip.kingdee.com/article/336825129714150912

查看所有数据库的字符集和排序集

select SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME,SQL_PATH 

from information_schema.SCHEMATA

备份要修改字符集的单库

mysqldump --no-defaults -ucosmic -p -h127.0.0.1 --single-transaction --routines --set-gtid-purged=off --databases dbname > /backup路径/dbname.sql

修改对应单库的字符集

ALTER DATABASE `dbname` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

查看表的排序规则(通过排序规则可以看出字符集)

select table_schema,table_name,engine,table_collation  

from information_schema.tables 

where table_schema in ('','','') and table_collation <> 'utf8mb4_unicode_ci'

order by table_schema

修改表及字段字符集

修改表字符集

alter table 'tb_name' default character set utf8mb4

修改某字段字符集

alter table 'tb_name' modify col_name varchar(xxx) character set utf8mb4

同时修改表及字段字符集

alter table 'tb_name' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

如果某个库里面表比较多可以拼接出要执行的批量修改语句进行修改

SELECT

CONCAT( 'ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' ) 

FROM

information_schema.TABLES

WHERE

TABLE_SCHEMA = ' ' and TABLE_NAME like '% %'

启动nginx后启动苍穹应用进行验证

systemctl start nginx

注意:应用验证异常用备份进行回退


苍穹如何修改mysql数据库字符集相关

一 背景苍穹mysql数据库标准字符集是utf8mb4_unicode_ci。人为默认配置了字符集utf8mb4_general_ci,导致数据库里面部分是utf8mb4_general...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息