首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL设置字符编码

MySQL设置字符编码

作者头像
用户5760343
发布于 2022-05-24 10:22:12
发布于 2022-05-24 10:22:12
6.6K0
举报
文章被收录于专栏:sktjsktj

前言

  这里我已经将MySQL数据库编码设置为UTF-8,所以下面现实的都是UTF-8。

  设置MySQL数据库的编码方式有三种,分别是基于session会话的、基于全局gloable的、永久性改变的。

正文

1.首先连接到MySQL : mysql -uroot -proot

2.输入\s,即可查看数据库的字符编码

3.查看数据库的详细编码

  输入:show variables like '%char%';

4.新建一个数据库查看数据库编码

  create database test1;

  show create database test1;

5.设置当前窗口的数据库字符编码,即使基于会话session级别的,关闭此窗口,重新打开另外的窗口操作数据库依然是原来的字符编码

  这里将utf-8设置为gbk:

  set character_set_database=gbk;

  set character_set_server=gbk;

    show variables like '%char%';

  我们发现database和server都变成了gbk,然后我们再重新创建一个数据库,查看其编码,

  create dabase test2;

  show create dabase test2;

  我们发现数据库编码已经变为gbk了。

  但是我们将此窗口关闭后,重新打开一个新的窗口来连接数据库,重新查看数据库的编码,发现不是我们刚刚修改的gbk了,还是原来的utf-8。如图:

  因为是基于会话级别的改变编码的方式,当重新新建一个窗口连接的时候,会话已经改变,所以变为了原来的字符编码。

6.设置全局的数据库字符编码,即使基于整个MySQL服务的,当重启MySQL服务的时候,编码依然会变为原来的字符编码

  set global character_set_database=gbk;

  set global character_ser_server=gbk;

  show variables like '%char%';

  我们发现数据库的编码没有修改成功,还是原来的utf-8。但是当我们重新创建数据库或者重新创建表的时候,编码就会是我们所期望的gbk了。

  在本窗口的新建数据库是肯定可以的,session级别的都可以,全局的肯定ok的。重点是在另一个窗口中的编码现实的是什么,下面我们复制一个窗口,新建数据库,来查看数据库和表的编码

  create database test3;

  show variables like '%char%';

  我们发现这是没有问题的。

  但是我们重启MySQL数据库的时候,编码又是回复为原来的utf-8了。

7.设置永久的字符编码,即需要在配置文件中修改数据库的字符编码

  编辑 /etc/my.cnf,

    在里面加入,已经有[XXX]的,在里面直接加入即可。 

    [mysqld]

    character-set-server=utf8 

    [client]

default-character-set=utf8 

    [mysql]

    default-character-set=utf8

  然后重启数据库即可,service mysql restart.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
彻底解决mysql中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
全栈程序员站长
2022/08/26
3.7K0
彻底解决mysql中文乱码
彻底解决MySQL中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
Java团长
2018/08/03
3.8K0
从零开始学Mysql - 字符集和编码(上)
从零开始学Mysql - 字符集和编码(上) 前言 上一节我们系统的阐述了关于系统配置的相关细节内容,而这一节我们需要了解关于字符集和编码的内容,字符集和编码的规则其实也算是入门mysql经常遇到的
阿东
2021/12/08
8580
从零开始学Mysql - 字符集和编码(上)
MySQL修改字符集utf8mb4
MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。
MySQL轻松学
2020/06/11
17.8K0
mysql操作命令梳理(4)-中文乱码问题
在平时的mysql运维操作中,经常会碰到插入中文字段后出现乱码的情况,产生中文乱码的原因一般有: 1)mysql的编码格式不对,是latin1编码。强烈推荐将mysql下的编码格式都改为utf8,因为它兼容世界上所有字符! 2)mysql的表的语系设定问题(包含character与collation) 3)客户端程式(例如php)的连线语系设定问题
全栈程序员站长
2022/07/19
1.5K0
MySQL从删库到跑路(二)——MySQL字符集与乱码解析
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 字符编码(Character encoding)是把字符集中的某个字符编码为指定字符集中字符,以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成ASCII,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示。 字符序(collation)是指同一个字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。一个字符可以包含多种字符序。MySQL字符序命名规则是:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci、cs、或bin结尾。以ci结尾的字符序表示大小写不敏感,以cs结尾的字符序表示大小写敏感,以bin结尾的字符序表示按二进制编码值比较。
良月柒
2019/03/19
9200
网易MySQL微专业学习笔记(八)-MySQL字符集
这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。
WindCoder
2018/09/19
5670
网易MySQL微专业学习笔记(八)-MySQL字符集
mysql命令行修改字符编码
1、修改数据库字符编码 mysql> alter database mydb character set utf8 ; 2、创建数据库时,指定数据库的字符编码 mysql> create database mydb character set utf8 ; 3、查看mysql数据库的字符编码 mysql> show variables like 'character%'; //查询当前mysql数据库的所有属性的字符编码 +--------------------------+---------------
程序员同行者
2018/06/22
3.6K0
MySQL中涉及的几个字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 character-set-database:数据库字符集。 character-set-table:数据库表字符集。 优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。 character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。 character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。 在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。
Java架构师必看
2021/05/20
1.5K0
MySQL字符集utf8mb4
Unicode是编码字符集,而UTF-8就是字符编码,即Unicode规则字库的一种实现形式。随着互联网的发展,对同一字库集的要求越来越迫切,Unicode标准也就自然而然的出现。它几乎涵盖了各个国家语言可能出现的符号和文字,并将为他们编号。
HLee
2021/07/23
1.6K0
MySQL字符集utf8mb4
MySql修改数据库编码为UTF8避免造成乱码问题--Java学习网
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。 网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 我们可以通过命令查看数据库当前编码:mysql> SHOW VARIABLES LIKE 'character%'; 发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。 第一阶段: mysql设置编码命令
用户1289394
2021/07/09
1.8K0
再见乱码:5 分钟读懂 MySQL 字符集设置
作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使用过程中,了解字符集、字符序的概念,以及不同设置对数据存储、比较的影响非常重要。不少同学在日常工作中遇到的“乱码”问题,很有可能就是因为对字符集与字符序的理解不到位、设置错误造成的。 本文由浅入深,分别介绍了如下内容: 字符集、字符序的基本概念及联系 MySQL支持的字符集、字符序设置级,各设置级别之间的联系 server、database、tabl
前端教程
2018/03/05
5.4K0
mysql设置utf8mb4字符编码
修改my.cnf文件。加入以下内容,然后重启数据库:systemctl restart mysqld
zhangdd
2020/01/02
1.7K0
【问题解决】MySQL修改字符编码解决中文乱码问题
前言 什么是字符编码,为什么会乱码? https://zh.wikipedia.org/wiki/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81 mysql database字符编码默认是latin1,并不支持中文 本篇文章解决办法适用范围? Linux下的mysql 5.6+版本 其他版本未尝试过,不敢保证可行 解决步骤 查看mysql目前字符编码 #登录mysql mysql -u rrot -p #在mysql中查询字符编码设置 mysql> show variables
KenTalk
2018/09/11
1.5K0
MySQL数据库编码有关问题--Java学习网
在程序开发中,有时会被字符乱码的问题所困扰。对此,必须理解 MySQL 的字符集编码设置的原理:在MySQL中,默认使用的是lartin1,也就是ISO8859-1字符集编码。这是一种8位的编码,适用于所有西欧字符。而对于汉字等是不合适的。最好、最通用的编码格式是utf-8,UTF-8(8 位元 Universal Character Set/Unicode Transformation Format)是一种针对Unicode 的可变长度字节编码的Unicode字符集。它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。所以对于8位的西欧字符集来说,更能比较节省空间,而又能够有效地表示汉字等字符。MySQL服务器对字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
用户1289394
2021/07/09
1.3K0
MySQL编码引发的两个问题 原
先讲一下写该文章的原因,首先,工作中又遇到一条很熟悉的MySQL报错信息 Cause: java.sql.SQLException: Incorrect string value:Cause: java.sql.SQLException: Incorrect string value… (emoji表情存储导致),原因是MySQL的字符集导致的;其次,因为一直听说数据库变更可能锁表,但是一直不知道到底哪些操作会导致锁表。所以今天对相关知识做一个系统的整理。
阿dai学长
2019/05/14
2.9K0
MySQL编码引发的两个问题
                                                                            原
深入理解MySQL字符集及校对规则(二)
上一篇呢,从理论上介绍了MYSQL字符集和校对规则是什么以及如何正确的使用字符集;关于第一部分的内容可参考:深入理解MySQL字符集及校对规则(一)
SEian.G
2021/03/03
2.1K0
Ubuntu的MySQL中文乱码问题--自己躺坑
最近一段时间学习Django,在进行与MySQL数据联合使用的插入数据的时候遇到下边的问题:
静默加载
2020/05/29
7320
MySQL字符集乱码
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 https://blog.csdn.net/robinson_0612/article/details/91175314
Leshami
2019/06/14
7.3K0
MySQL字符集乱码总结
查看数据库编码: show create database db_name; 查看表编码: show create table tbl_name; 查看字段编码: show full columns from tbl_name; show full fields from tbl_name;
阳光岛主
2019/02/19
9.5K0
相关推荐
彻底解决mysql中文乱码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档