MySQL字符集被某人覆盖。怎么可能以及如何处理它?

时间:2018-03-26 00:12:56

标签: mysql utf-8 server character-encoding mariadb

使用Web服务器,我最初使用mysql命令[ALTER DATABASE dbname CHARACTER SET charset COLLATE somecollat​​ion]为我的网站设置字符集,结果如下:

array([ 8.3859375])

但最近,我发现它改变如下:

| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8 

我网站上的字符已折叠。在我注意到这个问题之后,我再次使用了mysql命令并修复了它,但是网站仍然显示了折叠的字符。

所以我怀疑

  1. 管理员修改了db,它的mariadb的系统设置,或者升级了导致重置字符集的系统设置。管理员修改/升级/重置系统时是否可能导致此类问题?

  2. 系统设置可能会覆盖我使用mysql命令更改的设置。 .cnf文件或.conf文件可以覆盖现有的数据库字符设置,即使(甚至之后)SHOW VARIABLES LIKE' character_set%&#39 ;; 显示变量类似于整理%&#39 ;;显示所需的字符设置?服务器是共享服务器,我没有作为管理员在服务器上的权限。

  3. 你怎么看?

    我也想知道:

    | character_set_client     | utf8                    |
    | character_set_connection | utf8                    |
    | character_set_database   | latin1                  |
    | character_set_filesystem | binary                  |
    | character_set_results    | utf8                    |
    | character_set_server     | utf8                    |
    | character_set_system     | latin1
    

    由于

1 个答案:

答案 0 :(得分:0)

有几个选择:

  • my.cnf
  • 中正确设置内容
  • 检查您是否没有.my.cnf的个人utf8
  • 在连接字符串中使用utf8mb4(非常依赖于应用程序语言)。
  • 连接后立即执行此操作:SET NAMES utf8mb4;