MySQL Workbench编码修改失败及西里尔字符乱码问题求助
解决MySQL Workbench数据库编码修改及西里尔字符乱码问题
一、强制修改数据库及表的UTF-8编码(解决Workbench界面修改无效问题)
Workbench界面修改编码偶尔会出现同步失效的情况,直接执行SQL语句是最可靠的方式:
修改数据库默认编码
打开Workbench的查询编辑器,执行以下SQL(替换pess为你的数据库名):ALTER DATABASE `pess` CHARACTER SET utf8 COLLATE utf8_general_ci;执行后验证修改结果:
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'pess';修改现有表及字段的编码
数据库默认编码仅影响新创建的表,已有表需要单独修改:- 单表修改(替换
your_table_name为表名):ALTER TABLE `your_table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; - 批量修改所有表:
执行以下语句生成批量修改的SQL,复制结果执行即可:SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'pess';
- 单表修改(替换
二、解决CSV导入西里尔字符乱码问题
乱码的核心是导出、导入环节的编码不匹配,按以下步骤操作:
导出CSV时确保编码正确
在phpMyAdmin导出CSV时,确认编码选择为UTF-8,避免使用系统默认编码。导入CSV时指定UTF-8编码
- 用Workbench导入向导:在导入流程的「Advanced Options」中,将「Character Set」设置为
utf8。 - 用SQL语句导入(更可控):
LOAD DATA INFILE '/本地文件路径/你的文件.csv' INTO TABLE `目标表名` CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- 匹配CSV的分隔符和引号规则 LINES TERMINATED BY '\n' IGNORE 1 ROWS; -- 若CSV包含表头则添加此行
- 用Workbench导入向导:在导入流程的「Advanced Options」中,将「Character Set」设置为
内容的提问来源于stack exchange,提问作者Hunter91151
相关产品推荐
相关产品推荐

