MySQL连接字符集和校对规则

实际的应用访问来说,存在着客户端和服务器之间交互的字符集和校对规则的设置。
对于客户端和服务器的交互操作,MySQL提供了3个不同的参数:character_set_clinet,character_set_connection和character_set_result,分别代表客户端,连接和返回结果的字符集。通常情况下,这3个字符集应该是相同的,才可以确保用户写入的数据可以正确地读出,特别是对于中文字符,不同的写入字符集和返回结果字符集将导致写入的记录不能正确读出。
通常情况下,不会单个设置这3个参数,可以通过以下命令:

SET NAMES ***;

来设置连接的字符集和校对规则,这个命令可以同时修改这3个参数的值。使用这个方法修改连接的字符集和校对规则,需要应用每次连接数据库都执行这个命令。
另一个更简便的方法,在my.cnf中设置以下语句:

【mysql】
default-character-set=utf8

这样服务器启动后,所有连接默认就是使用utf8字符集进行连接的,而不需要在程序中再执行set names命令。另外,字符串常量的字符集也是由character_set_connection参数来指定的。

原文地址:https://www.cnblogs.com/aotemanzhifu/p/9192385.html