phpmyadmin 服务器变量和会话值
Posted
技术标签:
【中文标题】phpmyadmin 服务器变量和会话值【英文标题】:phpmyadmin server variables and session values 【发布时间】:2017-03-13 09:55:08 【问题描述】:我将使用utf8mb4
。我的一些变量也必须是提到here的utf8mb4。我从 phpmyadmin Variables
菜单设置它们。但是 utf8mb4 的一些变化,但它的 会话值 仍然是 uft8
。
当我运行这个命令时:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'
显示的是 utf8,不是 utf8mb4。有什么想法吗?
编辑:当我将 a 变量设置为 utf8
时,会话值消失。
【问题讨论】:
您可能设置了变量的全局版本,但没有设置会话版本。 @Shadow 但我无法编辑会话值。只是能够编辑变量。 是的,您可以使用set
语句。请参阅 mysql 手册中的文档。
@Shadow 我发现了这个语法:SET SESSION sql_mode = 'TRADITIONAL';
但结果相同!
为什么要设置sql模式?更改您感兴趣的变量。
【参考方案1】:
要对这些或任何其他“变量”进行永久性更改:
-
编辑
my.cnf
重启服务器(mysqld)
(显然)然后您需要重新登录。
流程:
服务器启动时,my.cnf 用于覆盖内置默认值;该组合变为GLOBAL VARIABLES
。
连接时,使用全局变量初始化SESSION VARIABLES
;这些由您的连接使用。
如果您执行SET
,它只会修改您的会话变量。当连接关闭时,该值将丢失。
关于 utf8mb4 的另一个注意事项... 大多数客户端软件(php、phpmyadmin 等)都有设置连接的 CHARACTER SET
和 COLLATION
的方法。 这是你应该确定“客户端中的字节是“UTF-8”编码的。(外界称之为UTF-8;MySQL称之为utf8mb4。)
更新:MySQL 8.0 有一个可选的方法来设置GLOBAL VARIABLES
"persist",从而绕过第 2 步(重新启动)。
【讨论】:
谢谢。很好的描述。主要问题是我找不到my.cnf
文件。我在网上搜索了很多,但没有结果。 (我在 localhost 并使用 xampp)
在某处我看到这个文件应该在/etc/my.cnf
但etc
位于哪里?
什么操作系统?它可以被称为my.ini
。以上是关于phpmyadmin 服务器变量和会话值的主要内容,如果未能解决你的问题,请参考以下文章
无法在 phpMyAdmin 中无错误地启动会话,会话变量不起作用