반응형
오라클의 파라미터와 같이 DB의 시스템적인 설정들을 관리할 수 있습니다.
동적변수와 정적변수가 있습니다. 정적변수는 재기동을 해야 적용되는 변수이고 동적변수는
바로 적용되는 변수입니다.
2가지 방법으로 설정을 변경할 수 있습니다.
1.my.cnf에 매뉴얼하게 변수 입력 후 재기동
- 영구적으로 변경할 필요가 있을 때 사용(정적변수)
2.명령어로 수행
- 재기동필요는 없지만 재기동할 시 원래 값으로 돌아옴(동적변수)
테스트를 통해 값을 실제로 변경해보고 변경값을 확인해보겠습니다.
실행 DB : Mysql 8.0.22
1.my.cnf에 적용
목표 : max_connections=200으로 변경
--작업전 변수값 확인
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.00 sec)
--my.cnf 변경
[root@ysbae mysql]# cat /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
max_connections=200
--DB 재기동
[root@ysbae mysql]# systemctl stop mysql.server
[root@ysbae mysql]# systemctl start mysql.server
--확인
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 200 |
+-----------------+-------+
1 row in set (0.00 sec)
100에서 200으로 변경되었음.
2.명령어로 변경
--확인
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 200 |
+-----------------+-------+
1 row in set (0.00 sec)
--변수 변경
mysql> set global max_connections=150;
Query OK, 0 rows affected (0.00 sec)
--변경값 확인
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 150 |
+-----------------+-------+
1 row in set (0.01 sec)
--DB 재기동
[root@ysbae mysql]# systemctl stop mysql.server
[root@ysbae mysql]# systemctl start mysql.server
--변수 확인
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 200 |
+-----------------+-------+
1 row in set (0.01 sec)
재기동시 my.cnf에 적용했던 값으로 되돌아감
다른변수를 적용후 재기동해보겠습니다.
--적용전 확인
mysql> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 100 |
+--------------------+-------+
1 row in set (0.00 sec)
--적용
mysql> set global max_connect_errors=150;
Query OK, 0 rows affected (0.00 sec)
--적용된것 확인
mysql> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 150 |
+--------------------+-------+
1 row in set (0.00 sec)
--재기동
[root@ysbae mysql]# systemctl stop mysql.server
[root@ysbae mysql]# systemctl start mysql.server
--값 확인
mysql> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 100 |
+--------------------+-------+
1 row in set (0.01 sec)
ㅁ마찬가지로 원래의 변수 값으로 돌아가는 것을 확인할 수 있습니다.
변수에 따라서 Local 변수와 Global변수가 나눠져 있을 수 있습니다.
그에 따라 명령어가 차이가 있습니다.
local변수의 경우
set session ~
global 변수의 경우
set global ~
반응형
'다른 DBMS > MySQL&MariaDB' 카테고리의 다른 글
Function 생성(ERROR 1046, ERROR 1418 ERROR 1419) (1) | 2020.12.10 |
---|---|
My.cnf 시스템 변수 설명 (0) | 2020.12.09 |
MYSQL설치(바이너리) (0) | 2020.12.04 |
MYSQL설치(RPM) (0) | 2020.12.03 |
MYSQL 설치(YUM) (0) | 2020.12.02 |
댓글