以下是网上摘抄的资料
/*
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_server和character_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_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