The ProxySQL configuration file
ProxySQL은 다중 계층 구성 시스템, 특히 3개 구성 계층을 사용합니다 . 이 특정 아키텍처에서 구성 파일에 있는 대부분의 구성은 initial bootstrap , initial startup 또는 reload startup 중에만 읽고 구문 분석됩니다 .
그러나 매우 작은 변수 세트는 항상 구성 파일에서 읽습니다(있는 경우).
자세한 내용은 아래를 참조하십시오.
문법
ProxySQL 구성 파일은 libconfig 를 사용하여 구문 분석 되며 해당 문법은 libconfig 매뉴얼 에 설명되어 있습니다.
패키지된 proxysql내에 proxysql.cfg에 해당 문법대로 작성되어 있습니다.
마지막으로 아래 문법 참조가 있습니다.
configuration = setting-list | empty
setting-list = setting | setting-list setting
setting = name (":" | "=") value (";" | "," | empty)
value = scalar-value | array | list | group
value-list = value | value-list "," value
scalar-value = boolean | integer | integer64 | hex | hex64 | float
| string
scalar-value-list = scalar-value | scalar-value-list "," scalar-value
array = "[" (scalar-value-list | empty) "]"
list = "(" (value-list | empty) ")"
group = "{" (setting-list | empty) "}"
empty =
터미널은 아래에서 정규식으로 정의됩니다.
boolean ([Tt][Rr][Uu][Ee])|([Ff][Aa][Ll][Ss][Ee])
string "([^"\]|\.)*"
name [A-Za-z*][-A-Za-z0-9_*]*
integer [-+]?[0-9]+
integer64 [-+]?[0-9]+L(L)?
hex 0[Xx][0-9A-Fa-f]+
hex64 0[Xx][0-9A-Fa-f]+L(L)?
float ([-+]?([0-9]*)?.[0-9]*([eE][-+]?[0-9]+)?)|([-+]([0-9]+)(.[0-9]*)?[eE][-+]?[0-9]+)
일반 변수
ProxySQL 구성 파일에는 데이터베이스 파일이 있는 경우에도 항상 구문 분석되는 몇 가지 변수가 있습니다.
- datadir (문자열): 데이터베이스 파일, 로그 및 기타 파일이 저장되는 ProxySQL datadir의 경로를 정의합니다.
- restart_on_missing_heartbeats (정수): MySQL 스레드 restart_on_missing_heartbeats가 하트비트를 놓치면 ProxySQL이 SIGABRT신호를 발생시키고 다시 시작합니다. 기본값은 10 입니다. 워치독 을 참조하십시오 .
- execute_on_exit_failure (문자열): 설정하면 ProxySQL 상위 프로세스는 ProxySQL이 충돌할 때마다 정의된 스크립트를 실행합니다. 경고를 생성하거나 이벤트를 기록하려면 이 설정을 사용하는 것이 좋습니다. ProxySQL은 충돌 시 몇 밀리초 내에 다시 시작할 수 있으므로 다른 모니터링 도구에서 정상적인 오류를 감지하지 못할 수 있습니다.
- errorlog (문자열): 설정된 경우 ProxySQL은 정의된 파일을 오류 로그로 사용합니다. 이러한 변수가 전달되지 않은 경우 오류 로그는 datadir/proxysql.log 에 있습니다.
- web_interface_plugin (문자열): 이는 proxysql이 내장 웹 인터페이스를 고급 인터페이스로 교체하기 위해 로드하려고 시도하는 웹 인터페이스(UI) 플러그인의 전체 경로를 정의합니다.
- sqlite3_plugin (문자열): 이는 추가 기능, 특히 미사용 암호화를 추가하기 위해 기본 제공 SQLite3 엔진을 교체하기 위해 proxysql이 로드하려고 시도하는 SQLite3 플러그인의 전체 경로를 정의합니다.
모듈 변수
특정 모듈은 module _variables 라는 섹션에서 변수를 구성해야 합니다 . 예를 들어 admin 모듈과 관련된 변수는 admin_variables, MySQL 모듈과 관련된 변수는 mysql_variables 입니다.
변수가 구성된 각 섹션 내에서 변수 접두사( mysql-, admin-또는 기타) 를 지정 하지 않아야 합니다.
Admin 모듈은 변수를 global_variables 테이블 에 로드할 때 섹션과 관련된 접두사를 자동으로 추가합니다 .
예를 들어:
- admin- 접두사는 admin_variables 에 정의된 모든 변수에 추가됩니다.
- mysql- 접수다는 mysql_variables 에 정의된 모든 변수에 추가됩니다.
다음은 구성 파일에서 변수가 정의되는 방법의 예입니다(접두사 를 지정 하지 않아야 함).
admin_variables=
{
admin_credentials="admin:admin;radmin:radmin"
mysql_ifaces="0.0.0.0:6032"
web_enabled="true"
}
mysql_variables=
{
threads=4
max_connections=2048
default_query_delay=0
default_query_timeout=36000000
have_compress=true
}
global_variables 테이블에 로드되면 올바른 접두사 admin- 와 mysql- 를 갖게 됩니다.
예:
Admin> SELECT * FROM global_variables WHERE
variable_name IN ('admin_admin_credentials',
'admin-mysql_ifaces', 'admin-web_enabled')
OR
variable_name IN ('mysql-threads','mysql-max_connections',
'mysql-default_query_delay','mysql-default_query_timeout',
'mysql-have_compress');
+-----------------------------+---------------------------+
| variable_name | variable_value |
+-----------------------------+---------------------------+
| admin_admin_credentials | admin:admin;radmin:radmin |
| admin-mysql_ifaces | 0.0.0.0:6032 |
| admin-web_enabled | true |
| mysql-default_query_delay | 0 |
| mysql-default_query_timeout | 36000000 |
| mysql-have_compress | true |
| mysql-max_connections | 2048 |
| mysql-threads | 4 |
+-----------------------------+---------------------------+
5 rows in set (0,00 sec)
'DB' 카테고리의 다른 글
ProxySQL - MySQL 8.0 지원 (0) | 2023.01.18 |
---|---|
ProxySQL - Global Variables (글로벌 변수) (0) | 2023.01.18 |
ProxySQL - 다중 계층 구성 시스템 (0) | 2023.01.17 |
ProxySQL - Audit log (감사 로그) (0) | 2023.01.17 |
ProxySQL 시작하기 (설치) (1) | 2023.01.13 |