我在localhost中使用MySQL(在ubuntu和windows中)。我想设置一个全局变量,我已经尝试了所有的方法,但即使我得到了一个";ok";来自mysql的消息,然后当我执行";选择@var";它总是说";NULL";。我试过:
set global var=17;
set @global.var=17;
set @@var=17;
有人能帮我吗?
提前谢谢。
ps:我有超级特权。
var
未引用有效的系统变量。SET
语句中的GLOBAL
和SESSION
关键字用于指定设置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上,您不能创建自定义全局或会话系统变量,但可以更改已存在的全局或会话变量 并且,您可以创建用户定义(自定义)变量,这些变量在您退出(注销)会话时会被删除,如下所示用户定义的变量仅存在于当前会话中,因此除非使用performance_schema.User_variables_by_thread:,否则其他会话无法看到这些变量SET GLOBAL max_connections = 1000; -- Existed global system variable
SET SESSION sql_mode = 'TRADITIONAL'; -- Existed session system variable
SET @first_name = 'John', @last_name = 'Smith';