본문 바로가기
DB

ProxySQL Configuration file (구성 파일)

by 세계정보ㄱ 2023. 1. 17.
728x90
반응형

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)
728x90
반응형

'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