无法在MySQL上设置全局变量



我在localhost中使用MySQL(在ubuntu和windows中)。我想设置一个全局变量,我已经尝试了所有的方法,但即使我得到了一个";ok";来自mysql的消息,然后当我执行";选择@var";它总是说";NULL";。我试过:

set global var=17;
set @global.var=17;
set @@var=17;

有人能帮我吗?

提前谢谢。

ps:我有超级特权。

变量名var未引用有效的系统变量。SET语句中的GLOBALSESSION关键字用于指定设置MySQL系统变量时的作用域,而不是MySQL用户变量。

例如:

SELECT @@global.net_read_timeout ;
SET GLOBAL net_read_timeout = 45 ;
SELECT @@global.net_read_timeout ;

http://dev.mysql.com/doc/refman/8.0/en/set-statement.html

http://dev.mysql.com/doc/refman/5.5/en/set-statement.html

根据MySQL 5.0参考手册:

用户定义的变量是特定于会话的。也就是说,用户变量由一个客户端定义的内容不能被其他客户端看到或使用。全部的当客户端退出。

您可以考虑使用MySQL全局用户变量UDF(旧的存档链接)这样的扩展来使用全局(持久共享)变量。

MySQL上,您不能创建自定义全局或会话系统变量,但可以更改已存在的全局或会话变量

SET GLOBAL max_connections = 1000;    -- Existed global system variable
SET SESSION sql_mode = 'TRADITIONAL'; -- Existed session system variable

并且,您可以创建用户定义(自定义)变量,这些变量在您退出(注销)会话时会被删除,如下所示用户定义的变量仅存在于当前会话中,因此除非使用performance_schema.User_variables_by_thread:,否则其他会话无法看到这些变量

SET @first_name = 'John', @last_name = 'Smith';

相关内容

  • 没有找到相关文章

最新更新