【MySQL】解决字符集编码问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL的默认编码方式是 拉丁文,如果想要设置一些汉字的数据.可能会报错.分享一下我解决这个问题时的方法.1. 在创建数据库时,指定字符集 2.更改MySQL的配置文件.

前言

MySQL的默认编码方式是 拉丁文,如果想要设置一些汉字的数据.可能会报错.分享一下我解决这个问题时的方法.1. 在创建数据库时,指定字符集 2.更改MySQL的配置文件.


方法1:在创建数据库时,指定字符集


create database 数据库名 charset 字符集;

字符集中最常用的就是utf8了.但是MySQL中的utf8其实是不完整的**.这里的utf8无法表示enoji(表情).后面MySQL又搞了个utf8mb4,这个是完整的utf8.

这种方法只是给当前创建的这个数据库设置了字符集,但如果要创建很多数据库,每次使用这个方法就会有点麻烦了. 因此我推荐大家使用第二种方法,通过更改MySQL的配置文件来解决这个问题.


方法2: 更改MySQL的配置文件


在创建数据库时,如果手动指定了数据库的编码方式,那么就会以指定的字符集为准.如果没有指定,MySQL就会读取自己的配置文件,从而决定要指定那种字符集.

因此建议使用这种方式解决这个问题,需要更改的文件是 my.ini

这个文件是不太好找的,再推荐大家一个查找文件的工具everything

everything下载地址:https://www.voidtools.com/zh-cn/

下面讲一下怎么改配置文件

1.先通过everything找到这个配置文件,然后右键打开路径

41.png

2.找到一下两个地方

42.png43.png

# 是注释的意思.这里就是MySQL默认字符集编码的方式

在修改前,先把原来的配置文件先保存下来(很重要!).可以创建一个文本文件,将原来的配置文件的内容ctrl c ctrl v保存下来

然后再分别把这两个地方改为:

default-character-set=utf8

character-set-server=utf8

修改完成之后,MySQL的默认编码就是utf8了.也可以修改为 utfmb4.

修改完成之后 要重启MySQL 服务器

44.png

点击进入服务 找到MySQL

45.png

然后右键启动即可.接下来你如果重新启动失败,大概率可能是配置文件改错了,这个时候就要用到之前保存过的配置文件了.这就需要 先将原来的配置文件把修改过的文件覆盖掉,再重新修改

以上操作完成之后,接下来创建的数据库的字符集编码就是修改配置文件后编码

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
6月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1569 26
|
9月前
|
存储 人工智能 搜索推荐
详解MySQL字符集和Collation
MySQL支持了很多Charset与Collation,并且允许用户在连接、Server、库、表、列、字面量多个层次上进行精细化配置,这有时会让用户眼花缭乱。本文对相关概念、语法、系统变量、影响范围都进行了详细介绍,并且列举了有可能让字符串发生字符集转换的情况,以及来自不同字符集的字符串进行比较等操作时遵循的规则。对于最常用的基于Unicode的字符集,本文介绍了Unicode标准与MySQL中各个字符集的关系,尤其详细介绍了当前版本(8.0.34)默认字符集utf8mb4。
2411 82
|
7月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
|
11月前
|
SQL 关系型数据库 MySQL
|
存储 人工智能 关系型数据库
MySQL 8.0 字符集与比较规则介绍
我们都知道 MySQL 8.0 与 MySQL 5.7 的区别之一就是默认字符集从 latin1 改成了 utf8mb4 ,除此之外,MySQL 8.0 下的字符集和比较规则还有没有其他变化呢?本篇文章我们一起来学习下。
805 1
|
存储 自然语言处理 关系型数据库
|
存储 关系型数据库 MySQL
MySQL各字符集、排序规则的由来、用法,区别和联系
MySQL支持多种字符集和排序规则,这些在数据库设计和数据处理中起着重要作用。下面是它们的由来、用法、区别和联系: 1. **字符集(Character Set)**: - **由来**:字符集定义了数据库中可以存储的字符集合,以及这些字符在数据库中的存储方式。 - **用法**:在创建数据库或表时,可以指定所需的字符集。常见的字符集包括UTF-8、UTF-16、Latin1等。 - **区别和联系**:不同的字符集支持不同的字符范围和存储方式,选择合适的字符集可以确保数据的正确存储和处理。例如,UTF-8支持全球范围内的大多数字符,而Latin1只支持西欧语言字符集。
353 1
|
存储 数据可视化 关系型数据库
Mysql字符集
Mysql字符集
151 0
|
存储 SQL 关系型数据库
详解MySQL字符集和Collation
详解MySQL字符集和Collation
1385 2
|
关系型数据库 MySQL Shell
Windows下的mysql字符集格式修改
在Windows上的MySQL 5.7.17,若安装时未设置字符集,可能导致乱码问题。本文提供了解决方案:首先,通过`mysql -uroot -p`登录并使用`show variables like '%char%';`查看当前字符集。然后,有两种修改方法:一是使用Shell命令临时修改9个相关属性为utf8;二是永久修改,在my.ini配置文件中将[mysqld]、[client]、[mysql]下的字符集改为utf8。记得重启MySQL服务以应用更改。此外,还提供了修改数据库和表字符集的SQL命令。

推荐镜像

更多