MySQL编码

编码设置

查询编码

SHOW VARIABLES LIKE 'character_set_%';

建库建表时指定编码:

创建数据库时指定库编码:

create database databaseName default character set utf8 collate utf8_general_ci;

创建表时指定表编码:

create table tableName(
	id int(32) primary key not null
)default charset=utf8; 

创建表时指定表字段编码:

create table tableName(
	id int(32) primary key not null,
	`code` varchar(128) unique not null character set utf8 collate utf8_general_ci
)default charset=utf8;

当库和表的编码都设置后,表字段编码可以不用设置,反正我是这样理解的,不设置就默认使用表设置的编码。

mysql设置编码命令

注意:以下命令只在当前连接下有效,当重启数据库或新开连接后失效。想一劳永逸请在mysql配置文件中配置默认编码。

set character_set_client = utf8; 
set character_set_connection = utf8; 
set character_set_database = utf8; 
set character_set_results = utf8;/*这里要注意很有用*/ 
set character_set_server = utf8; 
set collation_connection = utf8_bin; 
set collation_database = utf8_bin; 
set collation_server = utf8_bin;

mysql配置文件中配置默认编码

1、中止MySQL服务
2.1(Linux)、在/etc/下找到my.cnf,如果没有就把mysql的安装目录下的support-files目录(有的linux是安装目录的根目录)下的my-medium.cnf(或是my-large.cnf)复制到/etc/下并改名为my.cnf即可,这个步骤不同Linux版本会对应不用的目录和文件名。
2.2(Windows)、在安装根目录下找到my.ini,不可能没有。

3、打开my.cnf(或my.ini)以后修改成以下:

[client]
default-character-set=utf8

[mysqld]
#set the default character set.
character-set-server=utf8
character-set-client=utf8
collation-server=utf8_general_ci
#(注意1inux下mysq1安装完后是默认:表名区分大小写,列名不区分大小写;0:区分大小写,1:不区分大小写)
lower_case_table_names=1
#(设置最大连接数,默认为151, MySQL!服务器允许的最大连接数16384;)
max_connections=1000
init_connect='SET NAMES utf8'

[mysqld_safe]
default-character-set=utf8

[mysql]
default-character-set=utf8

4、启动MySQL服务

连接数据库设置编码

jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8

注意以上代码如果写在xml中由于&是xml中的字符实体,所以需要将&改成&

jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8

java与mysq编码对应关系

java中的常用编码UTF-8、GBK、GB2312、ISO-8859-1,对应mysql数据库中的编码utf8、gbk、gb2312、latin1。

utf8mb3和utf8mb4的区别

utf8mb3最多使用3个字节来表示一个字符,utf8mb4最多使用4个字节来表示一个字符。
utf8mb4能储存一些网络特殊字符(如emoji),utf8mb3不能。
mysql5.7及之前的版本utf8默认是utf8mb3,mysql5.7之后的版本utf8默认是utf8mb4。

collate

collate即排序规则,一个字符集可对应多个排序规则,一个排序规则只能对应一个字符集。
如utf8mb4_general_ci是和utf8mb4的排序规则之一,ci为Case Insensitive,即大小写不敏感,相反的utf8mb4_general_cs为Case Sensitive,即大小写敏感
数据库中涉及排序和比较的地方都会受到collate影响
查看数据库的所有collate:

show collation;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值