mysql字符集设置命令?创建数据库字符集为utf-8的命令
一、MySQL字符集设置分为哪些层级,并说明它们的有效级别
MySQL字符集设置分为以下四个层级:1.服务器层级:最高优先级,会影响整个MySQL服务器实例的默认字符集。可以通过在my.cnf配置文件中使用`character-set-server`参数设置,默认是latin1。2.数据库层级:次优先级,可以为每个数据库设置默认字符集。可以使用`CREATEDATABASE`语句的`DEFAULTCHARACTERSET`子句来设置,默认是服务器层级的字符集。3.表层级:再次优先级,可以为每个表设置默认字符集。可以使用`CREATETABLE`语句的`DEFAULTCHARACTERSET`子句来设置,默认是数据库层级的字符集。4.列层级:最低优先级,可以为每个列设置特定的字符集。可以使用`CREATETABLE`语句中的`CHARACTERSET`子句来设置,默认是表层级的字符集。这些层级的有效级别依次递增,具体字符集设置的优先级为:"列级别>表级别>数据库级别>服务器级别"。也就是说,如果在列级别设置了字符集,那么该列的字符集将覆盖表、数据库和服务器级别的设置。同样地,如果在表级别设置了字符集,那么该表的字符集将覆盖数据库和服务器级别的设置,依此类推。
二、mysql怎么更改数据库默认字符集
但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加两个参数:1.在[mysqld]下添加default-character-set=utf8(mysql5.5版本添加character-set-server=utf8)2.在[client]下添加default-character-set=utf8这样我们建数据库建表的时候就不用特别指定utf8的字符集了。配置文件里的这种写法解决了数据存储和比较的问题,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码。也就是传说总的setnames命令。事实上,setnamesutf8命令对应的是服务器端以下几个命令:SETcharacter_set_client=utf8;SETcharacter_set_results=utf8;
三、mysql怎么设置字符集
mysql字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级你查下你各级别字符集跟校对规则,修改成你需要的字符集及校对规则就可以了。参考自:
MySQL的字符集和校对(一)