我在本地主機上使用Mysql(在Ubuntu和Windows中)。我想設置一個全局變量,並且我嘗試了所有方法,但即使我從mysql中收到「ok」消息,然後當我執行「select @var」時,它總是說「NULL」。 我已經試過:無法在Mysql上設置全局變量
set global var=17;
set @global.var=17;
set @@var=17;
誰能幫助我?
在此先感謝。
ps:我有SUPER特權。
我在本地主機上使用Mysql(在Ubuntu和Windows中)。我想設置一個全局變量,並且我嘗試了所有方法,但即使我從mysql中收到「ok」消息,然後當我執行「select @var」時,它總是說「NULL」。 我已經試過:無法在Mysql上設置全局變量
set global var=17;
set @global.var=17;
set @@var=17;
誰能幫助我?
在此先感謝。
ps:我有SUPER特權。
變量名稱var
未引用有效的系統變量。 SET
語句中的GLOBAL
和SESSION
關鍵字用於指定設置MySQL系統變量的範圍,而不是MySQL用戶變量。
嘗試例如:
SELECT @@global.net_read_timeout ;
SET GLOBAL net_read_timeout = 45 ;
SELECT @@global.net_read_timeout ;
因此,不可能永久設置和存儲您選擇的任何名稱的變量? –
這是正確的。 'SET GLOBAL'用於修改預定義的MySQL *系統變量*。它不用於設置用戶定義的變量*。我沒有解釋MySQL響應「確定」消息,而不是發出錯誤。也許沒有一個標準的SQLSTATE可以準確地表示錯誤,也許只是返回一個成功代碼更容易;或者,也許這是關於未來升級的設計決策,以及對已棄用和已刪除的系統變量的某種程度的向後兼容性。 – spencer7593
用戶定義的變量是會話特定的。也就是說,由一個客戶端定義的用戶變量 不能被其他客戶端看到或使用。當客戶端退出時,所有 變量將自動釋放。
您可以考慮使用像MySQL Global User Variables UDF這樣的擴展名來使用全局(持久共享)變量。
我只想嘗試「$ var = 17;」 – user2196728
什麼? 「$」simbol用於PHP中的變量,而不是MySQL中的變量。 –
oups對不起,我沒有集中! – user2196728