character_set_database和character_set_server

character_set_database和character_set_server以下是网上摘抄的资料/*character_set_server: 服务器安装时指定的默认字符集设定。character_set_database: 数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。 建表时候,字段字符集的选取方式如下:1. * if 字段指定的字符集2. * else if 表指定的字符集3. *

以下是网上摘抄的资料

/*

character_set_server: 服务器安装时指定的默认字符集设定。
character_set_database: 数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。

 

建表时候,字段字符集的选取方式如下:

1. * if 字段指定的字符集

2. * else if 表指定的字符集

3. * else if @@character_set_database

4. * else @@character_set_server (如果没有设定,这个值为latin1)

 

*/

 

按照网上上面的说法,如果character_set_servercharacter_set_database变量的值不同,则新建数据库的字符集以character_set_server为准。

mysql> show variables like 'char%';+--------------------------+----------------------------------+| Variable_name            | Value                            |+--------------------------+----------------------------------+| character_set_client     | utf8                             || character_set_connection | utf8                             || character_set_database   | utf8                             || character_set_filesystem | binary                           || character_set_results    | utf8                             || character_set_server     | utf8                             || character_set_system     | utf8                             || character_sets_dir       | /usr/local/mysql/share/charsets/ |+--------------------------+----------------------------------+8 rows in set (0.00 sec)</span>


character_set_database和character_set_server

  

为什么新建的库按照character_set_server,而不是按照character_set_database呢。

真是很郁闷。难道是版本问题吗?我的mysql版本是 5.6.20-r5436-log 。

暂且不管这个问题了,我将这两个参数都配置成一致的就行了。

 

下面是具体的配置步骤:


1:在线修改

 

mysql> set character_set_server = utf8;Query OK, 0 rows affected (0.00 sec) mysql> set character_set_database = utf8;Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'char%';+--------------------------+----------------------------------+| Variable_name            | Value                            |+--------------------------+----------------------------------+| character_set_client     | utf8                             || character_set_connection | utf8                             || character_set_database   | utf8                             || character_set_filesystem | binary                           || character_set_results    | utf8                             || character_set_server     | utf8                             || character_set_system     | utf8                             || character_sets_dir       | /usr/local/mysql/share/charsets/ |+--------------------------+----------------------------------+8 rows in set (0.01 sec)</span>


 

2:修改配置文件

 

在/etc/my.cnf中添加一行:

character-set-server = utf8

 

记得重启下Mysql,验证配置文件里的变量是否生效。

 

即使在配置文件里根本就没有配置character_set_database,重启mysql后character_set_database变量值也会和character_set_server保持一致,故只需要配置character_set_server就行了。

 

/*

网上的资料(如http://www.java123.net/v/984515-2.html)大都在配置文件里分别配置这两个变量,在[mysqld]下添加:

default-character-set=utf8

character-set-server = utf8

但是,我试验了不行,只要添加上default-character-set=utf8,重启mysql服务就起不来了,报错:Starting MySQL…The server quit without updating PID file [FAILED]ysql/data/ser6-51.pid).

 

这又是一个让人郁闷的地方,~~~~(>_<)~~~~。

 

*/

今天的文章character_set_database和character_set_server分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27544.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注