在MySQL的启动选项中增加default-character-set=gb2312

博客围绕MySQL字符集展开,指出字符集可以是多种之一,若要改变字符集需在配置期间进行。若在服务器和客户间变换字符,应查看相关命令。特别警告,创建数据库表后改变字符集,需对每个表运行特定操作,否则索引排序可能出错。
部署运行你感兴趣的模型镜像
  • 缺省地,MySQL使用ISO-8859-1(Latin1)字符集。为了改变缺省设置,使用--with-charset选项目:
    shell> ./configure -- with-charset=CHARSET

    CHARSET可以是big5cp1251cp1257czechdanishdec8doseuc_krgb2312 gbk、german1hebrewhp8hungariankoi8_rukoi8_ukrlatin1latin2sjisswe7tis620ujisusa7win1251win1251ukr之一。见9.1.1 用于数据和排序的字符集。注意:如果你想要改变字符集,你必须在配置期间做make distclean!如果你想在服务器和客户之间变换字符,你应该看一下SET OPTION CHARACTER SET命令。见7.25 SET OPTION句法警告:如果你在创建了任何数据库表之后改变字符集,你将必须对每个表运行myisamchk -r -q,否则你的索引可能不正确地排序。(如果你安装了MySQL,创建一些表,然后重新配置MySQL使用一个不同的字符集并且重新安装它,这时就可能发生这种情况。)

您可能感兴趣的与本文相关的镜像

LobeChat

LobeChat

AI应用

LobeChat 是一个开源、高性能的聊天机器人框架。支持语音合成、多模态和可扩展插件系统。支持一键式免费部署私人ChatGPT/LLM 网络应用程序。

`--default-character-set=utf8mb4` 是 MySQL 客户端的一个启动参数,用于**指定客户端与服务器通信时使用的字符集**,防止中文乱码。 --- ## ✅ 正确加的位置:作为 `mysql` 命令的参数 你应该将它 **紧跟在 `mysql` 命令后面**,和其他连接参数(如 `-u`, `-p`, `-h`)并列使用。 ### 🔧 正确写法示例: ```bat mysql --default-character-set=utf8mb4 -u root -pGapinyc_2025 -D Gapinyc -e "SELECT * FROM user_info;" ``` 或者更规范地写成: ```bat mysql -u root -pGapinyc_2025 --default-character-set=utf8mb4 -D Gapinyc -e "SELECT NOW();" ``` > ⚠️ 注意: > - 参数顺序不强制,但建议放在 `-u`, `-p` 之后 > - 必须是 `--default-character-set=utf8mb4`(两个短横线) > - 不要写成 `--charset=utf8mb4` 或其他变体(MySQL 不识别) --- ## 📌 常见应用场景中的添加方式 ### 1. 在批处理 `.bat` 文件中 ```bat @echo off set MYSQL_USER=root set MYSQL_PASS=Gapinyc_2025 set DB_NAME=Gapinyc mysql -u %MYSQL_USER% -p%MYSQL_PASS% --default-character-set=utf8mb4 -D %DB_NAME% -e "SELECT '中文测试' AS msg;" pause ``` ✅ 效果:输出“中文测试”不会乱码。 --- ### 2. 进入交互式命令行时使用 ```bat mysql -u root -p --default-character-set=utf8mb4 ``` 然后输入密码。进入后执行: ```sql USE Gapinyc; SELECT '你好,世界!' AS test; ``` 👉 如果你不加这个参数,CMD 使用 GBK 解码 UTF-8 数据 → 出现乱码(如“浣犲ソ”)。 --- ### 3. 配合 SQL 脚本文件使用 ```bat mysql -u root -pGapinyc_2025 --default-character-set=utf8mb4 Gapinyc < sync_data.sql ``` 确保 `sync_data.sql` 文件本身也是 UTF-8 编码保存的! --- ## ❌ 错误写法(常见误区) | 写法 | 问题 | |------|------| | `--charset=utf8mb4` | 参数名错误,MySQL 不识别 | | `-default-character-set=utf8mb4` | 少了一个 `-`,应为 `--` | | 放在 `-e` 后面 | 虽然可能运行,但位置不当,易出错 | | 不加引号导致空格截断 | 如 `--default-character set=utf8mb4`(中间有空格) | --- ## 💡 补充建议:为什么需要这个参数? Windows CMD 默认编码是 **GBK**,而你的数据和表是 **UTF8MB4**,当 MySQL 返回中文字符串时: - MySQL 按 UTF8MB4 发送 - CMD 按 GBK 解码 → 字节错位 → 显示为“涓枃”、“浣犲ソ” 加上 `--default-character-set=utf8mb4` 后: - MySQL 客户端会告诉服务端:“我支持 UTF8MB4” - 并尽量以兼容方式传输文本 - 减少乱码概率(尤其配合 `chcp 65001` 更佳) --- ## ✅ 最佳实践组合(彻底解决乱码) ```bat @echo off chcp 65001 > nul mysql --default-character-set=utf8mb4 -u root -pGapinyc_2025 -D Gapinyc -e "SELECT '正在同步数据...' AS status;" pause ``` > ✅ 解释: > - `chcp 65001`:切换 CMD 当前代码页为 UTF-8 > - `--default-character-set=utf8mb4`:设置 MySQL 客户端字符集 > - 字体建议改为 **Consolas** 或 **宋体** ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值