Windows 10家庭中文版,MySQL  5.7.20,2018-05-07

Part.1 查找数据库的字符集编码

查看MySQL字符集编码:status命令

使用命令行登录MySQL服务器,然后输入status命令,可以查看到服务器的字符集编码及其它信息。

从下图可以看到,我的服务器(Server characterset)、数据库(Db characterset)的字符集编码是latin1。

上图找到了四个字符集编码,它们各自代表什么意思呢?

-Server characterset

数据库服务器的默认字符集编码,在后续创建数据库时,若无指定字符集编码,则新建的数据库默认使用此字符集编码。

-Db characterset

当前没有选择数据库(use database_name)时,显示新建数据库的默认字符集编码,同Server character;若已选择数

据库,则显示数据库的真实字符集编码。下图显示了一个字符集编码为utf8的数据库的status信息。

-Client characterset、Conn. characterset

客户端本身的字符集编码 和 客户端和服务器此时建立连接所使用的字符集编码。

还可以使用show variables命令查看更多字符集编码信息:show variables like 'char%'

show variables还可以查看更多的数据库的信息,可以使用help show variables命令查看它的具体用法

说明,show variables命令可以显示数据库的所有系统变量——全部 或者 根据需要查找,里面的有些变量可以放到数据库的启动

配置文件my.ini中,从而修改数据库的配置信息。更多资料和权威信息,请参考官网链接Server System Variables

Part.2 修改数据库默认字符集编码

两个问题:

为什么要修改默认字符集编码?

默认的是latin1,不支持中文,而我要存储的数据包括中文,因此,要更改。

当然,不更改也可以,这样的话,每次创建新的数据库时就需要指定字符集编码,如下:

create database if not exists test2 default charset utf8 collate utf8_general_ci;

将默认字符集编码修改为什么?

utf8(是utf8,不是utf-8,没有短横线)!

两种方式:

1.在命令行客户端修改

set character_set_server=utf8;

警告,这种方式在命令行客户端重启后无效。

试验:修改后创建数据库,检查新建数据库的字符集编码,预期是utf8。

2.在数据库服务器配置文件my.ini中修改

在my.ini文件中添加下面两行中任意一行即可默认字符集编码设置为utf8(存在于[mysqld]下面):

character_set_server = utf8
character-set-server = utf8

两行有什么区别吗?第一行用下划线连接,第二行用短横线连接,但是,都有效。

再次强调,是utf8,不是utf-8(短横线)。

这种方式就没有第一种的问题了,但是呢,配置后需要重启数据库服务器才会生效。

Part.3 附录

1.show variables、show status(显示数据库服务器状态)显示的内容太多——一屏显示不完,怎么办呢?

输出到文件中!

方法如下:

mysql -uroot -p -e "show variables" > d:\mysql.txt

回车,输入root账号密码,再回车即可将结果保存到d盘的mysql.txt文件中(保存到csv文件中或许更好?)。

注意,show variables命令用双引号括起来,单引号不行。

2.可以使用show character set;查看MySQL数据库服务器支持的字符集

3.服务器、数据库、表的字符集编码关系

若在创建数据库时没有指定,则其字符集编码 同 服务器;

若在数据库中创建表时没有指定,则其字符集编码 同 所在数据库。

不过,服务器、数据库、表的编码都可以通过命令行进行修改(各个字段的字符集编码也可以单独指定)。

4.查看表Table的编码

使用show create table...命令,如下图所示。

5.遗留问题

my.ini配置文件中的[mysqld]、[client]、[mysql]分别意味着什么?

参考链接:

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

https://dev.mysql.com/doc/refman/8.0/en/charset-configuration.html

https://blog.csdn.net/hwhua1986/article/details/53431852

https://blog.csdn.net/enlyhua/article/details/79638776

https://www.cnblogs.com/jiangxiaobo/p/6110647.html

https://zhidao.baidu.com/question/539586616.html

https://www.2cto.com/database/201112/114418.html

https://www.cnblogs.com/candle806/archive/2013/01/14/2859721.html

MySQL字符集编码相关的更多相关文章

  1. MySQL字符集编码

    MySQL字符集编码总结 之前内部博客上凯哥分享了一篇关于mysql字符集的文章,之前我对mysql字符集一块基本没有深究过,看到凯哥文章后有些地方有点疑惑,遂自己去看了mysql的官方文档,并參考了 ...

  2. 从一个慢查询到MySQL字符集编码

    从一个慢查询到MySQL字符集编码 目录 从一个慢查询到MySQL字符集编码 1. 问题起源 2. MySQL字符集和字符集排序规则 2.1 字符集相关概念 2.2 MySQL中的字符集和字符集排序规 ...

  3. linux下mysql字符集编码问题的修改

    安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件:由于linux下MySQL的默认安装目录分布在不同的文件下:不像windo ...

  4. mysql字符集编码乱码测试如下

    创建三个表tb_latin1,tb_utf8,tb_gbk,编码分别为latin1/utf8/gbk “你好a”字符串编码如下GBK : %C4%E3 %BA%C3 %61UTF-8 : %E4%BD ...

  5. MySQL字符集编码的理解分析

    今天帮同事处理一个棘手的事情,问题是这样的: 无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了 character-set-server = utf8之后, characte ...

  6. mysql字符编码相关

    mysql> show variables like '%character%'; +--------------------------+--------------------------- ...

  7. mysql 查看编码方式

    一. 查看数据库的字符集 show variables like 'character\_set\_%'; 输出: +--------------------------+--------+ | Va ...

  8. Mysql查看编码方式

    查看数据库的字符集 show variables like 'character\_set\_%'; 输出: +--------------------------+--------+ | Varia ...

  9. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

随机推荐

  1. 如何获取codeforces的完整数据?(玄学方法)

    做cf题总是wa,wa了以后还没发看完整数据,好气哦! 怎么办? 这其实非常简单 首先看一下wa的那个数据有什么特点 比如说n = 1111,m = 1111 那么就if(n == 1111 & ...

  2. BZOJ 3160 FFT+马拉车

    题意显然 ans=回文子序列数目 - 回文子串数目 回文子串直接用马拉车跑出来 回文子序列一开始总是不知道怎么求 (太蠢了) 后面看了题解 构造一个神奇的卷积 (这个是我盗的图)地址 后面还有一些细节 ...

  3. OpenJudge1001Exponentiation

    问题描述 Problems involving the computation of exact values of very large magnitude and precision are co ...

  4. CAAnimation保持动画结束时的效果

    配置动画时,加上一下两句 animation.removedOnCompletion = NO; animation.fillMode = kCAFillModeForwards;

  5. pandas基础整理

    用jupyter写好,直接放到GitHub上面了→_→ 博客链接:https://douzujun.github.io/page/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%9 ...

  6. Maven项目中通过profile定义使不同环境使用不同配置信息

    profile可以让我们定义一系列的配置信息,然后指定其激活条件.这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果.比如 ...

  7. 微信 js-sdk

    使用方法 http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html Demo http://203.195.235.7 ...

  8. Swift控制手电筒操作(iOS)

    手电筒是iphone的一个常用功能,最常用的操作就是turn on和turn off,下面我们来实现一个简单的手电筒操作程序:一个按钮来控制iphone手电筒的On和Off,并且按钮的text也做相应 ...

  9. 在cygwin下安装ns2

    首先下载ns2.可以到sourceforge去下载最新的all-in-one版本2.31,url为http://sourceforge.net/project/showfiles.php?group_ ...

  10. 20155331 2016-2017-2 《Java程序设计》第6周学习总结

    20155331 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 输入/输出基础 很多实际的Java应用程序不是基于文本的控制台程序.尽管基于文本的程序作为教 ...