一般我们在配置文件my.cnf中添加配置:

[client]
default-character-set = utf8 

[mysqld]
default-character-set = utf8
character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci   #可选的


创建数据库时指定字符集:

create database zabbix character set utf8 collate utf8_bin;


在mysql连接状态查看数据库的字符集:

show create database zabbix_office;     #查看创建数据库的字符集
show variables like 'character%';       #查看mysql默认的字符集


修改字符集:

SET character_set_client = utf8 ;  
SET character_set_connection = utf8 ; 
SET character_set_results = utf8 ;  
SET character_set_database = utf8 ;       
SET character_set_server = utf8 ;   
SET collation_connection = utf8 ;  
SET collation_database = utf8 ;   
SET collation_server = utf8 ;


客户端连接仍然看到的是乱码,这时要看客户端的字符集是否和服务端的字符集一致,如果不一致的话要修改客户端字符集:

SET NAMES 'utf8';


修改已创建数据库的默认字符集,这个没啥好办法,只能导出数据,删库然后重新建库指定默认的字符集。

create database zabbix character set utf8 collate utf8_bin;