Mysql的设置字符集后不提交更改

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

我试图通过使用set character_set_server = utf8;设置字符集服务器(这是最初utf8mb4)我使用mysql -u root -p登录到MySQL后,(我也试过其他用户,同时指定一个DB与--database)。运行set命令后,我用show variables like "%charac%"检查变量。它显示了正确的价值为UTF8。然而,当我退出会议并重新登录并重新检查它显示utf8mb4变量。我也试着设置字符集运行后commit;,再次它并没有改变的价值。我该怎么办?

mysql collation character-set
1个回答
0
投票

你现在要做的不是交易。交易使用具有DML(数据修改语言)语句(如选择,插入,upate,删除)。因此承诺是不是在这里做正确的事情。

大多数变量具有全球性的价值,这是仅适用于当前会话的值。你可以看到,在手动here(看scope)。当您不指定要改变全局值,则假定会话值。

与尝试

set global character_set_server = 'utf8';

还要补充一点改变你etc/my.cnf[mysqld]部分。否则,当你重新启动MySQL服务器(mysqld的)这种变化将再次落空。

最后,你可能要离开,在uft8mb4。你可能会认为,你不需要额外的字节,但请记住,这是额外的字节只用,当你真正使用的字符就像在你的文字表情符号。而性能方面,它实际上执行得更好。我手头没有证据在这里,但我最近在一个数据库中的会议,其中一个演讲是关于基准检查。在那里,它说,它执行好多了。先前被实现的UTF8是一个残缺的UTF8应该尽快死去。

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