众信系统部署
一、安装docker
二、必要的中间件安装
三、部署众信系统
四、常见问题
一、端口无法访问
二、CentOS7上设置或更改时区
三、移动端语音播报问题
centos7 查看、修改系统时间、时区
四、阿里OSS无法发布apk文件解决方案
查看容器时间
PVE下的CentOS虚拟机磁盘扩容
mysql统一字符集
Docker中清理none镜像操作步骤
创建MySQL容器密码错误,怎么修改密码
五、开通阿里OSS
五、数据异常问题临时处理方法
1、仓库库位和库位库存不一致的情况
从仓库商品维度查询库存有差异的商品
-
+
首页
mysql统一字符集
### 1、检查字符集 ``` SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'collation_server'; SHOW VARIABLES LIKE 'collation_connection'; ``` 结果应为 ``` +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | character_set_server | utf8mb4 | | collation_server | utf8mb4_0900_ai_ci | | collation_connection| utf8mb4_0900_ai_ci | +----------------------+--------------------+ ``` #### 修改配置文件 ``` [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] default_authentication_plugin=mysql_native_password # lower_case_table_names=1 ngram_token_size=1 # 统一字符集和排序规则 init_connect='SET collation_connection = utf8mb4_0900_ai_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_0900_ai_ci skip-character-set-client-handshake skip-name-resolve max_connections=300 back_log=90 innodb_thread_concurrency=1 wait-timeout=600 innodb_buffer_pool_size=500M log_bin=mysql-bin binlog-format=ROW #选择row模式 server_id=1 binlog-do-db=mrerp replicate-ignore-db=mysql replicate-ignore-db=sys replicate-ignore-db=information_schema replicate-ignore-db=performance_schema # 以上非必须,以下为必须 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION skip-name-resolve ``` #### 设置数据库 ``` ALTER DATABASE `数据库名` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; ``` ### 2、查找所有不一致的 Collation ``` SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '数据库名' AND COLLATION_NAME IS NOT NULL AND COLLATION_NAME != 'utf8mb4_0900_ai_ci'; ``` #### 生成 ALTER TABLE 语句 ``` SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE, ' COLLATE utf8mb4_0900_ai_ci;') AS sql_stmt FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '数据库名' AND COLLATION_NAME IS NOT NULL AND COLLATION_NAME != 'utf8mb4_0900_ai_ci'; ``` #### 执行 ALTER TABLE 语句 这会返回所有的 `ALTER TABLE` 语句。你可以手动将其复制到 MySQL 客户端或管理工具(如 MySQL Workbench、Navicat 等)中执行。 #### 使用 PREPARE 执行批量修改(可选) 如果你希望自动执行所有修改,可以用以下 SQL 批量执行这些 `ALTER TABLE` 语句: ``` SET SESSION group_concat_max_len = 100000; -- 增加SQL拼接长度 SELECT GROUP_CONCAT( CONCAT('ALTER TABLE `', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE, ' COLLATE utf8mb4_0900_ai_ci;') SEPARATOR ' ' ) INTO @sql_stmt FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '数据库名' AND COLLATION_NAME IS NOT NULL AND COLLATION_NAME != 'utf8mb4_0900_ai_ci'; -- 预编译执行 PREPARE stmt FROM @sql_stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; ```
KimiFeng
2025年3月25日 11:23
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期