
1、MySQL会出现中文乱码的原因
当我们在使用MySQL数据库的时候,经常会碰到乱码的问题,看下面的代码。
mysql> create table test(id int,name varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values(1,'宋蔚然');
ERROR 1366 (HY000): Incorrect string value: '\xE5\xAE\x8B\xE8\x94\x9A...' for column 'name' at row 1
mysql>相关学习推荐:mysql视频教程
很显然,当插入中文的时候报错,原因在哪呢?
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+character_set_client 客户端使用的字符编码
character_set_connection 数据库链接使用的编码
character_set_database 数据库使用的字符编码
原来是字符编码与服务端、数据库的编码不统一而造成的。
2、MySQL会出现中文乱码的解决方法
方法一:设置names
mysql> set names latin1;
mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
mysql> insert into test values(1,'宋蔚然');
Query OK, 1 row affected (0.01 sec)
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 宋蔚然 |
+------+-----------+
1 row in set (0.00 sec)再来看一下字符集的设置
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+字符编码统一就不会出现乱码。
解决乱码问题其实就是将客户端的字符编码与服务端、数据库的编码统一。这里的服务端与数据库编码都是latin1,所有set names latin1即可临时解决乱码问题。
方法二:修改数据库配置文件字符集为UTF8
UTF8支持很多语言体系,因此在生产中强烈建议将字符编码设置UTF8。打开数据库的配置文件,分别在[client],[mysql],[mysqld]下添加如下内容。
#vi /mysql/data/3306/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci重启数据库
[root@test ~]# systemctl restart mysqld
重写创建库和表
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> create table test(id int,name varchar(10));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values(1,'宋蔚然');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 宋蔚然 |
+------+-----------+
1 row in set (0.00 sec)再来看一下字符集的设置
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Trae国内版
国内首款AI原生IDE,专为中国开发者打造
2045
查看详情
1、MySQL会出现中文乱码的原因
当我们在使用MySQL数据库的时候,经常会碰到乱码的问题,看下面的代码。
mysql> create table test(id int,name varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values(1,'宋蔚然');
ERROR 1366 (HY000): Incorrect string value: '\xE5\xAE\x8B\xE8\x94\x9A...' for column 'name' at row 1
mysql>很显然,当插入中文的时候报错,原因在哪呢?
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+character_set_client 客户端使用的字符编码
character_set_connection 数据库链接使用的编码
character_set_database 数据库使用的字符编码
原来是字符编码与服务端、数据库的编码不统一而造成的。
2、MySQL会出现中文乱码的解决方法
方法一:设置names
mysql> set names latin1;
mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
mysql> insert into test values(1,'宋蔚然');
Query OK, 1 row affected (0.01 sec)
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 宋蔚然 |
+------+-----------+
1 row in set (0.00 sec)再来看一下字符集的设置
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+字符编码统一就不会出现乱码。
解决乱码问题其实就是将客户端的字符编码与服务端、数据库的编码统一。这里的服务端与数据库编码都是latin1,所有set names latin1即可临时解决乱码问题。
方法二:修改数据库配置文件字符集为UTF8
UTF8支持很多语言体系,因此在生产中强烈建议将字符编码设置UTF8。打开数据库的配置文件,分别在[client],[mysql],[mysqld]下添加如下内容。
#vi /mysql/data/3306/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci重启数据库
[root@test ~]# systemctl restart mysqld
重写创建库和表
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> create table test(id int,name varchar(10));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values(1,'宋蔚然');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 宋蔚然 |
+------+-----------+
1 row in set (0.00 sec)再来看一下字符集的设置
mysql> show variables like '%CHARACTER%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+以上就是解决MySQL会出现中文乱码问题的方法的详细内容,更多请关注其它相关文章!
# 重写
# 密云区大型网络营销推广
# 个人网站seo最新优化方法
# 惠州家具厂seo工具
# 朝阳网站建设案例介绍
# 萝岗sem网站优化推广费用
# 正规网站建设与优化方案
# seo综合查询中同网
# 上海公司网站建设价格表
# 辽宁关键词排名外包
# seo网络营销实战培训
# MySQL
# 都是
# 客户端
# 国内
# 解锁
# 配置文件
# 看一下
# 镜像
# 再来
# 服务端
# 中文乱码
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
J*aScript类型数组_TypedArray使用
抖音怎么解除第三方绑定_抖音解除第三方平台绑定方法介绍
QQ邮箱官方登录页_腾讯出品安全稳定的邮箱服务
《下一站江湖2》武器获取方法
Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法
作业帮网页版不用下载入口 在线问老师快速答疑
聚水潭ERP后台管理系统登录 聚水潭ERP官方登录通道
OTT月报 | 2025年9月智能电视大数据报告
如何用mysql开发用户注册登录功能_mysql用户注册登录数据库设计
繁花漫画使用教程
word页码灰色不能用如何解决
PHP多语言网站的实现:会话管理与翻译函数优化教程
《浙里办》电子发票开具方法
iQOO手机信号差网络不稳定怎么办 信号问题原因排查与增强设置【攻略】
TikTok收藏夹无法删除视频如何解决 TikTok收藏管理优化方法
抖音官网入口快速访问 抖音网页版账号注册解析
126邮箱网页在线登录2025_126邮箱网页版入口官方地址
怎样设置开机后自动运行某个程序_Windows启动文件夹与任务计划【自动化】
为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践
Final Cut Pro视频加EQ教程
《撕歌》会员开通方法
《sketchbook》选中部分图案移动方法
猫眼app抢票快还是小程序快
sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧
铁路12306怎么申请退票_铁路12306退票申请操作流程
Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件
我的世界官方网址入口 我的世界游戏主页直达入口
优化Leaflet弹出层图片显示:条件渲染策略
b站怎么用微信登录_b站微信登录方法
动漫之家观看全集库 动漫之家免费资源网地址
解决Go encoding/json 将JSON大数字解析为浮点数的问题
Apple Music无故扣费引质疑
Python中处理嵌套字典与列表的数据提取与过滤教程
WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程
《荔枝fm》导出文件教程
《海底捞》点外卖方法
圆通快递官方入口不需要登录 在线查询入口快速查询
B站怎么开|直播| B站|直播|申请需要什么条件【新手必看】
mysql中如何分析索引使用情况_mysql索引使用分析方法
铁拳8在线玩 铁拳8在线秒玩入口
Golang如何操作指针参数_Go pointer参数传递规则
4399正版网页版入口高清直达链接
如何在CSS中设置背景图像:一个全面指南
向往的生活小游戏启动处_向往的生活小游戏立即启动
智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析
英雄联盟争者留名活动介绍
《全民k歌》音乐怎么下载到本地2025
Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】
德邦快递查询入口登录官网 德邦快递单号查询系统入口
汽车之家网页版免费登录_汽车之家官网首页直接进入
2020-07-06
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。