修改mysql默认字符集为latin1_MySQL修改默认字符集解决中文乱码问题

本文介绍了如何在Windows 10环境下,针对MySQL 5.7版本,解决中文乱码问题。通过查看并修改MySQL配置文件my.ini,将默认字符集改为latin1,然后重启MySQL服务,以确保数据库、客户端和连接的字符集统一。此外,还提供了Linux环境下修改my.cnf文件的方法。

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

MySQL修改默认字符集解决中文乱码问题

兮陌 • 2020 年 04 月 23 日

MySQL默认得字符集为Latin1(ISO-8859-1),只包含西文字符,如果有中文就会显示乱码,比如显示???

我的环境是:windwos10+MySQL5.7,下面就以此为例

查看字符集

在修改之前我们先查看一下当前数据库的默认字符集:show variables like "%colla%";

show variables like "%char%";

得到结果如下:mysql> show variables like "%colla%";

+----------------------+---------- --------+

| Variable_name | Value |

+----------------------+-------------------+

| collation_connection | latin1_swedish_ci |

| collation_database | latin1_swedish_ci |

| collation_server | latin1_swedish_ci |

+----------------------+-------------------+

3 rows in set (0.00 sec)

show variables like "%char%";

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | C:\mysql57\share\charsets\ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

修改字符集

修改字符集需要修改MySQL的配置文件,Windows的配置文件在MySQL安装目录下,文件名为my.ini

如果你没有找到这个文件有两个方法:自己新建一个

MySQL一般会有一些预设的配置文件,比如my-default.ini等等,拷贝一份,然后重命名为my.ini

每个节点都需要配置,如果有就修改,没有则添加:[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

[mysql]

default-character-set=utf8

修改成功后重启mysql服务(需要管理员权限):net stop mysql

net start mysql

重新查询字符集配置:mysql> show variables like "%colla%";

+----------------------+---------- ------+

| Variable_name | Value |

+----------------------+-----------------+

| collation_connection | utf8_general_ci |

| collation_database | utf8_general_ci |

| collation_server | utf8_general_ci |

+----------------------+-----------------+

3 rows in set (0.00 sec)

show variables like "%char%";

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | C:\mysql57\share\charsets\ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)为了确保字符集统一, 在建表的时候最好强制设定统一的字符集

另外通过JBDBC连接MySQL的时候最好加上以下参数:

jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8

附Linux下的配置方法:

Linux的配置文件为my.cnf,通常位于etc/mysql/my.cnf或者/etc/my.cnf路径下。

但由于安装版本或是系统环境的不同,我们可能无法在这个目录中找到该文件,这时需要自己创建一个。

查找一个my-medium.cnf文件,然后复制到/etc文件夹下,其他同Windows:[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

[mysql]

default-character-set=utf8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值