2013-11-21 6 views
5

Я использую Mysql в localhost (в ubuntu, а также в окнах). Я хочу установить глобальную переменную, и я попытался всеми способами, но даже если я получаю сообщение «ok» от mysql, тогда, когда я делаю «select @var», он всегда говорит «NULL». Я пробовал:Невозможно установить глобальную переменную в Mysql

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

Может кто-нибудь мне помочь?

Заранее спасибо.

ps: У меня есть привилегия SUPER.

+0

Я бы просто попробовал «$ var = 17;» – user2196728

+1

Что? Символ «$» предназначен для переменных в Php, а не в MySQL. –

+0

oups извините, я не был сконцентрирован! – user2196728

ответ

4

Имя переменной var не ссылается на действительную системную переменную. Ключи GLOBAL и SESSION в операторе SET используются для указания области при настройке системных переменных MySQL, а не переменных пользователя MySQL.

Try, например:

SELECT @@global.net_read_timeout ; 

SET GLOBAL net_read_timeout = 45 ; 

SELECT @@global.net_read_timeout ; 

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

+1

Итак, невозможно установить и сохранить постоянную переменную с любым именем, которое вы выберете? –

+1

Это правильно. 'SET GLOBAL' предназначен для изменения предопределенных системных переменных * MySQL *. Он не используется для установки * пользовательских переменных *. У меня нет объяснения, что MySQL отвечает сообщением «ОК», вместо того, чтобы испускать ошибку. Возможно, нет стандартного SQLSTATE, который точно представляет ошибку, возможно, было просто проще вернуть код успеха; или, возможно, это было конструктивное решение относительно будущих обновлений и некоторая степень обратной совместимости для устаревших и удаленных системных переменных. – spencer7593

1

Согласно MySQL 5.0 Reference Manual:

определяемые пользователем переменные одного сеанса. То есть пользовательская переменная , определенная одним клиентом, не может быть видна или использована другими клиентами. Все переменные для данного сеанса клиента автоматически освобождаются при выходе клиента .

Вы можете использовать расширение, например MySQL Global User Variables UDF, для использования глобальных (постоянных общих) переменных.

Смежные вопросы