4.2.8 프로그램 변수의 설정에 옵션 사용
많은 MySQL 프로그램은 내부 변수가 런타임에 SET
문을 사용하여 설정할 수 있습니다. 섹션 13.7.4 "SET 구문" 및 섹션 5.1.5 "시스템 변수 사용" 을 참조하십시오.
이러한 프로그램 변수의 대부분은 프로그램 옵션 지정에 적용되는 것과 동일한 구문을 사용하여 서버 시작시에도 설정할 수 있습니다. 예를 들어, mysql은 통신 버퍼의 최대 크기를 제어하는 max_allowed_packet
변수가 있습니다. mysql에 max_allowed_packet
변수를 16M 바이트의 값으로 설정하려면 다음 명령 중 하나를 사용하십시오.
shell>mysql --max_allowed_packet=16777216
shell>mysql --max_allowed_packet=16M
첫 번째 명령은 값을 바이트로 지정합니다. 두 번째는 값을 M 바이트로 지정합니다. 수치를 가지고 변수는 1024,1024 2 또는 1024 3의 승수를 나타 내기 위해 K
, M
또는 G
(대문자 또는 소문자)의 접미사로 값을 지정할 수 있습니다. (예를 들어, max_allowed_packet
를 설정하는 데 사용되는 경우, 접미사는 K 바이트 M 바이트 또는 G 바이트의 단위를 나타냅니다.)
옵션 파일에서 변수의 설정은 첫 번째 대시없이 지정됩니다.
[mysql] max_allowed_packet = 16777216
또는 :
[mysql] max_allowed_packet = 16M
취향에 변수 이름에 밑줄을 대시로 지정할 수 있습니다. 다음 옵션 그룹은 동일합니다. 모두 서버의 키 버퍼를 512M 바이트로 설정합니다.
[mysqld] key_buffer_size = 512M [mysqld] key-buffer-size = 512M
변수는 모든 설명하거나 애매하지 않은 접두어로 지정할 수 있습니다. 예를 들어, max_allowed_packet
변수는 mysql에 --max_a
으로 설정할 수 있지만 --max
로는 지정할 수 없습니다. 후자는 모호한 때문입니다.
shell> mysql --max=1000000
mysql : ambiguous option '--max = 1000000'(max_allowed_packet, max_join_size)
변수의 접두어를 사용하면 프로그램에 새로운 변수가 구현 된 경우에 문제가 될 수 있다는 점에 유의하십시오. 현재 애매하지 않은 프리픽스가 미래 애매하게 될 수 있습니다.
값 승수를 지정하는 접미사는 서버를 시작할 때 변수를 설정할 때 사용할 수 있지만 런타임에 SET
값을 설정하는 데 사용할 수 없습니다. 한편, SET
을 사용하면 수식을 사용하여 변수의 값을 할당 할 수 있지만, 서버를 시작할 때 변수를 설정할 때 사용할 수 없습니다. 예를 들어, 서버를 시작할 때 다음의 첫 번째 줄은 유효하지만 두 번째 줄은 무효입니다.
shell>mysql --max_allowed_packet=16M
shell>mysql --max_allowed_packet=16*1024*1024
반대로, 실행시 다음 두 번째 줄은 유효하지만 첫 번째 줄은 무효입니다.
mysql>SET GLOBAL max_allowed_packet=16M;
mysql>SET GLOBAL max_allowed_packet=16*1024*1024;