2013-11-21 5 views
5

저는 localhost (우분투와 윈도우에서도)에서 Mysql을 사용하고 있습니다. 전역 변수를 설정하고 싶습니다. 그러나 모든 방법으로 시도했지만, mysql에서 "ok"메시지를 받았지만 "select @var"를 수행하면 "NULL"이라고 표시됩니다. 시도 :Mysql에 전역 변수를 설정할 수 없습니다

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

아무도 도와 줄 수 있습니까?

미리 감사드립니다.

ps : 저는 SUPER 특권이 있습니다.

+0

나는 "$ var = 17;"을 시도 할 것입니다. – user2196728

+1

무엇? "$"simbol은 MySQL이 아닌 PHP의 변수입니다. –

+0

oups 미안, 나는 집중되지 않았다! – user2196728

답변

4

변수 이름 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/5.5/en/set-statement.html

+1

그래서 어떤 이름으로 변수를 영구적으로 설정하고 저장할 수 있습니까? –

+1

맞습니다. 'SET GLOBAL'은 사전 정의 된 MySQL 시스템 변수를 수정하기위한 것입니다. * 사용자 정의 변수 *를 설정하는 데 사용되지 않습니다. 오류 메시지가 아닌 "OK"메시지로 MySQL이 응답하는 것에 대한 설명이 없습니다. 아마도 오류를 정확하게 나타내는 표준 SQLSTATE가 없을 것입니다. 성공 코드를 리턴하는 것이 더 쉬울 수도 있습니다. 또는 향후 업그레이드에 관한 디자인 결정이었고, 더 이상 사용되지 않고 제거 된 시스템 변수에 대한 어느 정도의 하위 호환성이있을 수도 있습니다. – spencer7593

1

MySQL 5.0 Reference Manual에 따르면

사용자 정의 변수는 세션 별입니다. 즉, 한 클라이언트가 정의한 사용자 변수 은 다른 클라이언트가 보거나 사용할 수 없습니다. 클라이언트가 종료되면 지정된 클라이언트 세션의 모든 변수가 자동으로 해제됩니다.

글로벌 (영구 공유) 변수를 사용하려면 MySQL Global User Variables UDF과 같은 확장자를 사용하는 것이 좋습니다.

관련 문제