webserver에
vi /etc/my.cnf
:set nu
:22 -> 22번 빈라인 : default-character-set = utf-8
30번 빈라인 : skip-name-resolve
31번 : character-set-server = utf-8
48번 : server-id = 1 -> server-id = 2 로 변경(Slave db이름을 인식시킴)
52번 : log-bin=mysql-bin 앞에 # 지우기
55번 : binlog_format=mixed 앞에 # 지우기
56번 빈라인 : max_binlog_size = 1000M 엔터 후
57번 빈라인 : expire_logs_days = 14
51번 라인 : 주석해제 log-bin=mysql-bin
54번 : 주석해제 binlog_format=mixed
55번 : max_binlog_size = 1000M
56번 : expire_logs_days = 14
esc -> :wq
이때 utf8로 써줘야함. 사진은 오타!
systemctl start mariadb
systemctl status mariadb
mysql -uroot -p
1
db
systemctl status mariadb
systemctl enable mariadb
mysql -uroot -p
1
['Master'로 인식될 DB 가상머신으로 이동]
mysql -uroot -p
enter password : 1
grant replication slave on *.* to slaveroot@192.168.7.51 identified by '1234'
(*.* : 모든 데이터베이스 안에 있는 모든 테이블)
slaveroot@웹주소
리눅스에서 ifconfig로 확인
flush privilegs;
exit
replication : 이중화
vi /etc/my.cnf
:set nu
51번 라인 : 주석해제 log-bin=mysql-bin
54번 : 주석해제 binlog_format=mixed
55번 : max_binlog_size = 1000M
56번 : expire_logs_days = 14
esc -> :wq
systemctl restart mariadb
Master에서 log_file과 Position 확인 후 Slave에 동기화 시켜야 함!!
show master status;
- 표현식으로 Master의 상태를 보여줌(log_file, position)
- log_file과 position 정보를 기억함
- log_file : musql-bin.000004
- MariaDB를 시작할 때마다 파일명이 변경됨
- position : 245
- SQL 쿼리를 처리하면 변경됨
- log_file : musql-bin.000004
- 줄의 형태로 표현
show master status\\G;
slave서버(web)으로 이동
mysql -uroot -p
1
change master to master_host='192.168.7.51', (내 db서버)
master_user='slaveroot',
master_password='1234',
master_port=3306,
master_log_file='mysql-bin.000004', (mastet 서버의 log_file 값)
master_log_pos=245; (master 서버의 position값)
Query ok 확인후
flush privileges;
exit
방화벽 설정
firewall-config
옵션 -fiwalld 다시 불러오기 적용
- SELINUX 기능 비활성화
setenforce 0
mysql -uroot -p
1
create database MasterDB;
동기화가 구성되지 않을 때 조치사항
show slave status\\G;
// => slave_IO-Running : yes가 되어있어야 이중화 구현된 것
slave db (web)서버로 이동
stop slave;
db서버 이동
show master status;
change master to master_host='192.168.7.51', (내 db서버)
master_user='slaveroot',
master_password='1234',
master_port=3306,
master_log_file='mysql-bin.000004', (mastet 서버의 log_file 값)
master_log_pos=320; (master 서버의 position값)
flush privileges;
start slave;
show slave status\\G;
'Network > Linux' 카테고리의 다른 글
[Linux] 마리아DB 데이터베이스 서버의 이중화 (0) | 2023.09.14 |
---|---|
[Linux] 리다이렉션과 데이터베이스 복구 (0) | 2023.09.14 |
[Linux] 외부에서 mariadb 접속(리눅스 → mariadb ) (0) | 2023.09.14 |
[Linux] 가상머신 복제 후 테이블 생성(mariadb) (0) | 2023.09.14 |
[Linux] 리눅스 기반 워드프레스(WordPress) 생성 (7) | 2023.09.14 |