mysql编码数据库,数据表,字段各用什么编码

mysql编码数据库,数据表,字段各用什么编码,第1张

1. ASCII

用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。

编码范围:U+0000 - U+007F

注意:对于用这类字符的场景够用了,但是却无法表达比如汉字,日文等编码。

2. UNICODE

用途:用来映射包含 ASCII 以内的其他的所有字符。

编码范围:U+0000 - U+10FFFF

注意:ASCII 是 UNICODE 的子集,ASCII 编码的字符可以无损转换为 UNICODE 编码的字符。

MySQL 常用字符集

1. Latin1

Latin1 是 cp1252 或者 ISO-8859-1 的别名。ISO-8859-1 编码是单字节编码,向下兼容 ASCII。

编码范围:U+0000 - U+00FF

ISO-8859-1 收录的字符除 ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。

单字节内的空间都被 ISO-8859-1 编码占用,所以能够用 ISO-8859-1 编码存储、传输其他任何编码的字节流。

比如把一个 Utf8mb4 的编码或者 GBK 的编码存入 Latin1,不会有任何问题。因为 Latin1 保留了原始的字节流,这也就是 MySQL 长期以来把 Latin1 做默认字符集的原因。

但是由于 Latin1 对任何字符都存放字节流,造成了字符个数的浪费。

比如:

CHAR(10) CHARACTER SET LATIN1CHAR(10) CHARACTER SET UTF8

该字段中存储字符个数 UTF8 是 Latin1 的三倍!!!

2. GB18030

GB18030 是中国官方标准字符集,向前兼容 GBK、GB2312,是这两个的超集。用 1、2、4 个字节分别表示一个符号。比如对一般中文字符,默认是用两个字节编码存储。Windows 系统,默认用的就是 GB18030。

若只是存储中文字符,那 GB18030 最佳。

原因有两点:

1)占用空间小,比如比 UTF8 小。

2)存储的汉字根据拼音来排序,检索快。

3. UTF8

UTF8 是 Unicode 的编码实现,可以存储 UNICODE 编码对应的任何字符, 这也是使用最多的一种编码。最大的特点就是变长的编码方式,用 1 到 4 个字节表示一个符号,可以根据不同的符号编码字节长度。

字母或数字用 1 字节,汉字用 3 字节,emoji 表情符号用 4 字节。UTF8 字符集目前是使用最广泛的。

注意!MySQL 里常说的 UTF8 是 UTF8MB3 的别名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字节 UTF8 字符集!

UTF8MB3 表示最大支持 3 个字节存储字符,UTF8MB4 表示最大 4 个字节存储字符。根据实际需要和未来展望,MySQL 8.0 已经默认用 UTF8MB4 基础字符集。

使用语句如下语句检查当前编码是什么:

show variables like ‘%character%’

show variables like’%collation%’

如果不是以上情况,需要将mysql编码设置为utf-8。

具体步骤如下:

如果安装mysql是安装了“MySql Sever Instance Configuration Wizard”,则只需要启动该程序进行相应设置即可。

1、 编辑MySql的配置文件

MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf

--在 [mysqld] 标签下加上以下内容:

default-character-set = utf8

character_set_server = utf8

注意:如果此标签下已经存在“default-character-set=GBK”类似的内容,只需修改即可。

--在 [mysql] 标签下加上一行

default-character-set = utf8

--在 [mysql.server]标签下加上一行

default-character-set = utf8

--在 [mysqld_safe]标签下加上一行

default-character-set = utf8

--在 [client]标签下加上一行

default-character-set = utf8

2、 重新启动MySql服务

Windows可在服务管理器中 *** 作,也可使用命令行:

net stop mysql 回车

net start mysql 回车

服务名可能不一定为mysql,请按自己的设置

Linux下面可是用 service mysql restart

如果出现启动失败,请检查配置文件有没有设置错误

3、 查看设置结果

登录MySql命令行客户端:打开命令行

mysql –uroot –p 回车

输入密码

进入mysql后 执行 :show variables like "% character %"

另外:

建立数据库时可以使用以下命令:

create database app_relation character set utf8

use app_relation

source app_relation.sql

修改数据库编码的命令为:

alter database app_relation character set utf8

通过show

variables

like

'character_set%%'查看编码

修改mysql的编码方式可以有以下几个:

1.通过配置文件修改my.ini(windows下)或/etc/my.cnf(linux下)

分别添加如下内容

[mysqld]

character_server_set=utf8

[mysql]

default-character-set=utf8

[mysql.server]

default-character-set=utf8

[mysql_safe]

default-character-set=utf8

[client]

default-character-set=utf8

2.创建数据库时设置编码

create

database

test

character

set

utf8

3.创建表时设置编码

create

table

test(id

int

primary

key)DEFAULT

charset=utf8

4.修改数据库编码

alter

database

test

character

set

utf8

5.修改表默认编码

alter

table

test

character

set

utf8

6.修改字段编码

alter

table

test

modify

col_name

varchar(50)

CHARACTER

SET

utf8

以上所述是小编给大家介绍的MySQL字符编码设置方法,希望对大家有所帮助!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6145110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存