是否有任何方法可以获取可以在运行时修改的所有系统变量?我已经使用SHOW VARIABLES
进行了测试,但这会返回所有变量,而不仅返回在运行时可以更改的变量。
如果我使用SHOW SESSION VARIABLES
,则会收到如下响应:
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| autocommit | ON |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr |
| big_tables | OFF |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | STATEMENT |
| binlog_stmt_cache_size | 32768 |
上面的代码返回basedir
之类的变量,这些变量在运行时无法设置。
答案 0 :(得分:0)
您可以将SHOW VARIABLES
与SESSION
范围修饰符一起使用。
EG:SHOW SESSION VARIABLES
SHOW VARIABLES接受可选的GLOBAL或SESSION变量范围 修饰符:
使用GLOBAL修饰符,该语句显示全局系统变量 价值观。这些是用于初始化对应的值 会话变量,用于与MySQL的新连接。如果变量没有 全局值,不显示任何值。
使用SESSION修饰符,该语句显示系统变量 当前连接有效的值。如果一个变量 没有会话值,则显示全局值。本地是一个 SESSION的同义词。