VMware๋ก ๋ฆฌ๋ ์ค ์ปดํจํฐ 2๋ ์ค์น(Master DB, Slave DB)
ํ๋๋ master, ๋๋จธ์ง ํ๋๋ slave์ ์๋ฒ๋ก MySQL Replication์ ๊ตฌํ, ์ค์ต ํด๋ณผ ๊ฒ์ด๋ค.
๊ฐ ์ปดํจํฐ๋ง๋ค ์ค์ ํด์ค ๊ฒ์
1. IP ์ค์ (master์ 10.10.10.5, slave๋ 10.10.10.6์ผ๋ก IP์ฃผ์๋ฅผ ์ธํ
)
1-1. ๋คํธ์ํฌ ์ค์ ํ์ผ ํธ์ง
vi /etc/sysconfig/network-scripts/ifcfg-ens160
//VI ํธ์ง๊ธฐ์ ๋ค์ด์์ ๋ฌธ์ ์์
ONBOOT=yes : ๋ถํ
ํ ๋ ์ด ๋ด์ฉ์ ์ฐธ๊ณ ํด์ ๋คํธ์ํฌ๋ฅผ ์ธํ
ํ๊ฒ ๋ค
IPADDR=10.10.10.3 :์ํ๋ IP๋ก ์๋์ผ๋ก ์ค์ ํด์ค
NETMASK=255.255.255.0 :์๋ธ๋ท ๋ง์คํฌ ์ค์
GATEWAY=10.10.10.2
DNS1=8.8.8.8
1-2. ์ฌ๋ถํ
init 6
1-3. IP ์ฃผ์๊ฐ ์ ๋ณ๊ฒฝ๋์๋ ์ง ํ์ธ
ip addr
1-4. ์ธํฐ๋ท์ด ์ ๋๋ ์ง ํ์ธ
ping 8.8.8.8
2. mysql-server ์ค์น
2-1. DB ์๋ฒ ์ค์น
yum install -y mysql-server
2-2. DB ์๋ฒ ์คํ
systemctl start mysqld
2-3. mysql ์ด๊ธฐํ
mysql_secure_installation
-> No -> ๋น๋ฐ๋ฒํธ์
๋ ฅ -> ์ฌ์
๋ ฅ -> Y -> Y -> Y
์ด์ ์ปดํจํฐ ๋ ๋๊ฐ ์์ฑ๋์์ผ๋ ๊ฐ๊ฐ์ ์ปดํจํฐ๋ฅผ Master DB, Slave DB๋ก ์ค์ ํด๋ณด์!
Master DB ์ค์
1) /etc/my.cnf.d/mysql-server.cnf ์ค์ ํ์ผ ์์
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld] ๋ฐ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๋ค.
//1์ด ํน๋ณํ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ์๋๊ณ , ์๋ฒ๊ฐ ์ฌ๋ฌ ๋์ด๋ค ๋ณด๋๊น ๊ตฌ๋ณํด์ฃผ๊ธฐ ์ํ id๋ฅผ ์ค์ ํจ
server-id = 1
//๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํจ
log-bin = mysql-bin
2) ์ค์ ํ์ผ์ ์์ ํด์ฃผ๋ฉด restart์ ํด์ค์ผ ํจ
systemctl restart mysqld
3) Master ์ํ ํ์ธ
mysql -u root -p ๋ก๊ทธ์ธ ํ
show master status;
4) Replicationํ ๋ ์ฌ์ฉํ ๊ณ์ ์์ฑ ๋ฐ ๊ถํ ๋ถ์ฌ
//Master DB์ ์ ๊ทผํด์ ์ฌ์ฉํ Slave๋ฅผ ์ํ master์ user๋ฅผ ๋ง๋ฆ
CREATE USER '[์ด๋์
]'@'[Slave์ IP์ฃผ์]' IDENTIFIED BY '[ํจ์ค์๋]';
GRANT REPLICATION SLAVE ON *.* TO '[์ด๋์
]'@'[Slave์ IP์ฃผ์]';
5) Repl_slave_priv ์์ฑ์ด Y๋ก ๋์ด์๋์ง ํ์ธ
SELECT * FROM mysql.user where user='[์ด๋์
]'\G
Slave DB ์ค์
// Master์ log ๋ฒํธ, ํฌ์ง์ ๋ฒํธ๋ Master์์ ํ์ธ ํ Slave์์ ์คํํ๋ ๊ฒ!
1) /etc/my.cnf.d/mysql-server.cnf ํ์ผ ์์
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld]๋ฐ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๋ค.
server-id = 2
1-1) ์ค์ ํ์ผ์ ์์ ํ์ผ๋ ์ฌ์์
systemctl restart mysqld
2) Master ์ง์
mysql -u root -p
change master to
master_host='[๋ง์คํฐ์ IP์ฃผ์]',
master_user='[๋ง์คํฐ์์ ๋ง๋ slave์ฉ ๊ณ์ ์ด๋ฆ]',
master_password='[๋ง์คํฐ์์ ๋ง๋ slave์ฉ ๊ณ์ ์ PW]',
master_log_file='mysql-bin.[๋ง์คํฐ์ ๋ก๊ทธ ๋ฒํธ]',
master_log_pos=[๋ง์คํฐ์ ํฌ์ง์
๋ฒํธ];
3) ๋๊ธฐํ ์์
start slave;
4) Slave ์ํ ํ์ธ
show slave status;
๋๋
show slave status\G
* ์ ๋๊ธฐํ๊ฐ ์ ์๋ ๋ ๊ฐ๋ฅํ ๋ฌธ์ ์
(1) ์ฌ๋ ์ด๋ธ
stop slave;
(2) ๋ง์คํฐ
๋ง์คํฐ ์ํ ํ์ธ
(3) ์ฌ๋ ์ด๋ธ
change master to ๋ช
๋ น์ด๋ก ์ค์
start slave;
(4) ๊ธฐํ (DB์ ๋ฌธ์ ๊ฐ ์๋)
๋คํธ์ํฌ ํ์ธ
๋ฐฉํ๋ฒฝ ํ์ธ
Master, Slave DB์ ๋์ ํ์ธ
3. ๋์ ํ์ธ
(1) ๋ง์คํฐ, ์ฌ๋ ์ด๋ธ์์ DB ํ์ธ
show databases;
(2) ๋ง์คํฐ์์ DB ์์ฑ
CREATE DATABASE [DB์ด๋ฆ];
(3) ๋ง์คํฐ, ์ฌ๋ ์ด๋ธ ์์ DB ํ์ธ
show databases;
์ด ๋ ์์ชฝ์ DB๊ฐ ์์ฑ๋์ด ์์ด์ผ ํ๋ค.