数据库字符集设置

character_set_client

客户端字符集(客户端向服务器发送的请求)

character_set_connection

数据库连接字符集(客户端和数据库的连接)

character_set_server

数据库服务器的字符集

character_set_database

数据库字符集(若未指定按character_set_server 指定字符集)

character_set_results

返回结果字符集(数据库给客户端返回时的字符集)

character_set_system

系统字符集

查看并设置数据库字符集变量

1.设置会话级别的字符集,服务器为每一个连接的客户端都提供了系统变量,作用域为当前的连接(会话)。如下图为一次数据库连接。
在这里插入图片描述
show variables like '%char%'; 查看当前连接的字符集
在这里插入图片描述
set names utf8;
在这里插入图片描述

对应的是服务器端以下几个命令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

当前连接的字符集已经确定,可以通过set names utf8;动态修改,若要修改全局的默认字符集(确保下次连接字符集为utf8),需要修改my.ini配置文件

修改配置文件,加上如下设置:

[client]

default-character-set=utf8 # 客户端字符集

[mysql]

default-character-set=utf8

[mysqld]
init_connect = ‘SET NAMES utf8’ #每个普通用户连接时都会执行
character-set-server = utf8 #服务器端字符集

重启MySQL服务,以后全局默认的字符集为utf8。如下,新建连接,查看全局字符集。
在这里插入图片描述

2.设置全局的字符集,,服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效。重启数据库服务器会失效,要想服务器重启后仍有效,只能修改配置文件。

show global variables like '%char%'; 查看全局字符集
set global character_set_database=utf8;
set global character_set_server=utf8;


版权声明:本文为weixin_43890049原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。