gpt4 book ai didi

mysql - 设置CENTOS 6 mysql字符集为UTF8

转载 作者:行者123 更新时间:2023-11-29 23:30:35 25 4
gpt4 key购买 nike

我有一个网站,我意识到当您将某些字符(*,' "- _)从 Microsoft Word 等特定应用程序复制到我网站上的搜索框中时,它会返回此错误:

ERROR org.hibernate.util.JDBCExceptionReporter - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

所以我去检查我的数据库,我想看看数据库是否使用UTF-8。

mysql> SHOW VARIABLES LIKE '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+

如您所见,数据库使用 latin1,我想将其设置为使用 utf8。首先,我在 Centos 6.2 服务器上,文件 my.cnf 文件位于 /etc/my.cnf 中,并且文件[mysqld]下如下:

[mysqld]
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init_connect ='SET NAMES utf8'
character_set_server = utf8
collation_server = utf8_general_ci

P.S 我并不担心 [client] 部分,因为它显示它在 character_set_client 值下使用 utf8

问题:

尽管我尝试在 my.cnf 文件中设置服务器(并关闭该文件,关闭我的 tomcat 并重新启动我的 tomcat)。一切都没有改变。当我运行显示的第一个查询时,它仍然显示 character_set_server 仍在使用 latin1

最佳答案

虽然重新启动 TOMCAT 没有任何效果,但实际上我必须重新启动“mySql”才能使更改生效。因此,您必须首先停止主服务器(在我的例子中停止 TOMCAT),然后重新启动 mySql,然后再次启动 TOMCAT。之后,在您的 mySql 中,如果您键入:show VARIABLES like %character%;,您应该会看到您的数据库数据类型为 utf-8,并且如果您type: show VARIABLES like %collat​​ion% 您还应该看到数据库排序规则数据类型,应为 utf-8_general_ci

关于mysql - 设置CENTOS 6 mysql字符集为UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26605698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com