MySQL 데이터베이스 매개 변수보기 및 수정

MySQL 데이터베이스 매개 변수보기 및 수정

MySQL은 SQL의 처리 및 실행을 제어하기 위해 많은 매개 변수에 의존합니다. mysql.cnf 파일은 mysql의 기본 매개 변수 구성 파일이며 mysql이 시작되면 특정 위치에서이 파일을 찾아서 읽습니다. my.cnf가 없어도 MySQL 인스턴스의 초기 시작에는 영향을주지 않습니다. 파라미터 값은 MySQL 컴파일시 지정한 기본값과 소스 코드에 지정된 파라미터의 기본값에 따라 다릅니다.

하나, MySQL 매개 변수의 분류

MySQL 매개 변수는 정적 (정적) 매개 변수와 동적 (동적) 매개 변수로 나눌 수 있으며, 차이점은 매개 변수 값을 인스턴스의 수명주기 동안 수정하고 적용 할 수 있는지 여부에 있습니다.

1. 정적 매개 변수

데이터베이스 시작 중에는 정적 매개 변수를 수정할 수 없습니다. 정적 매개 변수 설정을 적용하려면 다시 시작해야합니다. 예 : log_slave_updates, back_log, log_bin, lower_case_table_names. 정적 매개 변수의 경우 전역 수준과 세션 수준이 구분되지 않습니다.

2. 동적 매개 변수

동적 매개 변수는 데이터베이스 시작 중에 수정할 수 있습니다. 동적 매개 변수는 글로벌 수준과 세션 수준의 두 가지 유형으로 나뉩니다. 세션 범위를 수정해도 열리고 나중에 열린 다른 세션에는 영향을주지 않습니다. 전역 범위 매개 변수 값이 수정 된 후에는 수정 전에 열려 있던 세션이 적용되지 않으며 새로 생성 된 세션에 적용됩니다.

둘째, MySQL 매개 변수보기

예를 들어 wait_timeout 매개 변수를 사용하십시오.

1. 글로벌 매개 변수보기

방법 1 :

mysql> select @@global.wait_timeout;
+-----------------------+
| @@global.wait_timeout |
+-----------------------+
|                 28800 |
+-----------------------+
1 row in set (0.00 sec)

방법 2 :

mysql> show global variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.01 sec)

방법 3 :

mysql> select * from performance_schema.global_variables where variable_name ='wait_timeout';
+---------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+----------------+
| wait_timeout  | 28800          |
+---------------+----------------+
1 row in set (0.00 sec)

mysql> select * from performance_schema.global_variables where variable_name like '%wait_timeout%';
+--------------------------+----------------+
| VARIABLE_NAME            | VARIABLE_VALUE |
+--------------------------+----------------+
| innodb_lock_wait_timeout | 50             |
| lock_wait_timeout        | 31536000       |
| wait_timeout             | 28800          |
+--------------------------+----------------+
3 rows in set (0.01 sec)

2. 세션 수준 매개 변수보기

방법 1 :

mysql> select @@wait_timeout;
+----------------+
| @@wait_timeout |
+----------------+
|          28800 |
+----------------+
1 row in set (0.00 sec)

방법 2 :

mysql> select @@session.wait_timeout;
+------------------------+
| @@session.wait_timeout |
+------------------------+
|                  28800 |
+------------------------+
1 row in set (0.00 sec)

방법 3 :

mysql> show variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.00 sec)

방법 4 :

mysql> show session variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.00 sec)

방법 5 :

mysql> select * from performance_schema.session_variables where variable_name like '%wait_timeout%';
+--------------------------+----------------+
| VARIABLE_NAME            | VARIABLE_VALUE |
+--------------------------+----------------+
| innodb_lock_wait_timeout | 50             |
| lock_wait_timeout        | 31536000       |
| wait_timeout             | 28800          |
+--------------------------+----------------+
3 rows in set (0.00 sec)

세, MySQL 매개 변수 수정

1. 세션 수준 매개 변수 수정

방법 1 :

mysql> set wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

방법 2 :

mysql> set session wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

방법 3 :

mysql> set @@wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

방법 4 :

mysql> set @@session.wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

2. 글로벌 수준 매개 변수의 수정

방법 1 :

mysql> set global wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

방법 2 :

mysql> set @@global.wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

넷째, 매개 변수 값을 MySQL의 기본값으로 설정합니다.

1. 세션 수준 매개 변수

mysql> set wait_timeout=DEFAULT;
Query OK, 0 rows affected (0.00 sec)

2. 글로벌 레벨 매개 변수

mysql> set global wait_timeout=DEFAULT;
Query OK, 0 rows affected (0.00 sec)

5. 정적 매개 변수의 수정 및 동적 매개 변수의 영구 효과

동적 매개 변수 설정을 영구적으로 적용해야하는 경우 매개 변수 파일을 수정하고 MySQL을 다시 시작해야 적용됩니다. 정적 매개 변수는 매개 변수 파일을 수정해야만 유효성을 검증 할 수 있습니다. 예 :

# vi /etc/my.cnf
[mysqld]
wait_timeout=10

추천

출처blog.csdn.net/weixin_44377973/article/details/107069009