Mariadb不会将CHARACTER_SET_RESULTS从latin1更改为utf8

问题描述 投票:0回答:2

我正在使用5.5.64-MariaDB MariaDB服务器。我一生都无法将character_set_results更改为utf8。我尝试过ALTER DATABASE DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;我也尝试过SET SESSION CHARACTER_SET_CLIENT = utf8mb4; SET SESSION CHARACTER_SET_RESULTS = utf8mb4;

然后我进入my.cnf,看起来像这样

[mysqld]
datadir                         = /var/database/db
innodb_flush_log_at_trx_commit  = 2
query_cache_size                = 16M
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
character_set_server   = utf8mb4
collation_server       = utf8mb4_unicode_ci
character_set_client: utf8mb4
character_set_database: utf8mb4
character_set_results: utf8mb4
character_set_connection: utf8mb4
character_set_server: utf8mb4

更改my.cnf之后,我重新启动了mariadb,并且成功。

当我运行mysqladmin -u root -p var | grep -E 'character|collation' | tr -s ' '时,我得到了

[vagrant@localhost vagrant]$ mysqladmin -u root -p var | grep -E 'character|collation' | tr -s ' '
Enter password:
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |

如何更改CHARACTER_SET_RESULTS?我也尝试过SET SESSION CHARACTER_SET_RESULTS = utf8mb4;SET character_set_results = utf8mb4;,但是当我运行Java集成测试时,它会一直重置为latin1。我检查了我的项目,找不到latin1。我不知道为什么它会一直重置为latin1,以及如何将其更改为utf8。有任何想法吗?我不认为将mariadb升级到10.X会有帮助,但是如果有人遇到此问题,那是解决方案,我会试一试。

我正在使用5.5.64-MariaDB MariaDB服务器。我一生都无法将character_set_results更改为utf8。我尝试了ALTER DATABASE DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;我也试过...

mysql vagrant mariadb
2个回答
0
投票

ALTER DATABASEALTER TABLE仅更改默认


0
投票

全局设置是正确的,但是当客户端连接到服务器时,客户端会强制服务器更改字符集(默认情况下,客户端工具和Connector / C使用的是latin1)。

© www.soinside.com 2019 - 2024. All rights reserved.