数据库字符集
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;