mysql 设置 编码字符集 过程

本文详细介绍了如何设置MySQL的编码字符集,包括关闭数据库、修改my.cnf配置文件、临时和永久修改字符集,以及在创建数据库和表时指定字符集,以解决乱码问题。建议参照官方文档和可靠资源进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文从关闭数据库开始讲解如何设置mysql的编码字符集,解决乱码问题

关于在从客户端到数据库服务器之间编码转换的过程可以参考这篇:http://blog.itpub.net/29272216/viewspace-1243705

设置字符集流程:

1. 关闭数据库 ->  service mysqld stop

2. 修改my.cnf文件设置默认字符集-> linux该文件一般在 /etc/my.cnf , 没有的话手动创建.   

   default-character-set = utf8
   character_set_server = utf8

这种好像是永久修改,重启也生效,但是我设置了并没用

3. 设置数据库的默认编码:

  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;

这个是临时修改,重启了就恢复默认了.

关于每个编码的作用:https://blog.csdn.net/sun8112133/article/details/79921734

最好还是查看官方文档,别人的博客感觉都理解的不是很靠谱。

4. 重启数据库: service mysql restart

以上步骤很可能是错误的!!!!!!!

下面的更靠谱一些:

这篇两篇博客讲了MySQL的在传输过程中的编解码过程 :  

https://blog.csdn.net/kxcfzyk/article/details/35283041

https://blog.csdn.net/kxcfzyk/article/details/37723367

个人理解 上述第三步中的设置编码方式 其实只是设置当前客户端使用的编码,所以会发现重启数据库后再次进入发现又都恢复默认了。

其实还是在创建数据库和建表的时候记得声明下编码格式更靠谱一些:

CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

CREATE TABLE `plan_notice` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

看到一个靠谱的解释:

https://www.jianshu.com/p/96ee5b2adef3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值