]# systemctl status mariadb
]# mysql -u root -p
Enter password:111
MariaDB [(none)]> show databases;
MariaDB [(none)]> use shopping_db;
Database changed
MariaDB [shopping_db]> show tables;
MariaDB [shopping_db]> select * from customer;
테이블 내용 확인
MariaDB [shopping_db]> exit
Bye
마리아DB에서 리눅스 셸로 이동
[root@localhost ~]# mysqldump --all-databases
mysqldump: Got error: 1045: "Access denied for user 'root'@'localhost' (using password: NO)" when trying to connect
-> root 패스워드 설정 시 패스워드를 입력해줘야 함
[root@localhost ~]# myqldump -uroot -p --all-databases
Enter password: 111
모니터(화면)에 마리아DB와 관련된 내용이 출력
mysqldump 명령어는 기본출력장치인 모니터에 마리아DB 관련 내용을 출력하는 명령어이다.
stdln
stdOut
stdErr
]# echo 1 > hello.txt
=> 명령을 입력하면 모니터에 1이 출력되지 않음
'>'는 왼쪽 내용이 오른쪽 파일에 저장됨
]# ls
]# cat hello.txt
hello.txt의 내용을 보여줌
]# echo Hello World! > hello.txt
- Hello World!가 출력됨!
- 리다이렉트('>')를 사용하면 기존에 있는 내용이 사라지고, 새로운 내용으로 대체!!
]# echo 1 >> hello.txt
- 기본에 있던 내용을 두고, 맨 아래 줄에 추가됨
]# mysqldump -u root -p --all-databases > MariaDB_All_Backup.sql
Enter password:111
]# mysqldump -uroot -p shopping_db > shopping_db_Backup.sql
Enter password:111
]# mysqldump -uroot -p shopping_db customer > customer_TB_Backup.sql
Enter password:111
mysql -uroot -p [복구할 데이터베이스명] < 백업파일(파일명.sql)
새 레코드 입력 후
MariaDB [shopping_db]> exit
- 나가기
복구
]# mysql -uroot -p shopping_db < customer_TB_Backup.sql
Enter password:111
복구 확인을 위해 마리아 DB 다시 접속
이전 내용으로 DB 복구 됨
서버의 이중화란 하나의 데이터베이스 서버와 똑같은 내용을 가진 데이터베이스 서버를 운용하는 것을 말함.
]# yum -y install mariadb mariadb-server
서버의 이중화를 위해 Slave 머신도 마리아 DB서버 설치
]# cp /usr/share/mysql/my-small.cnf /etc/my.cnf
cp: overwrite '/etc/my.cnf'? y
]# vi /etc/my.cnf
:set nu
- 22번 라인 추가
default-character-set = utf8
입력
- 30번 라인 추가 (29번 라인에서 enter
)
skip-name-resolve
입력
- 31번 추가 (30번 라인에서 enter
)
character-set-server = utf8
입력
- 48번 수정(1->2로)
server-id = 2
- 51번 54번 주석 해제
log-bin=mysql-bin
binlog_format=mixed
- 55번 추가
max_binlog_size=1000M
- 56번 추가
expire_logs_days=14
:wq
]# systemctl restart mariadb
]# systemctl stop firewalld
실습 위해 잠시 방화벽 끄기
https://velog.io/@tlqdnwls/22.12.22-43일차-클라우드
참조 비밀번호 111 설정하기
]# vi /etc/my.cnf
:set nu
- 51번 54번 라인 주석 해제
- 55번라인
max_binlog_size=1000M
- 56번 라인
expire_logs_days=14
:wq
]# systemctl restart mariadb
]# systemctl stop firewalld
]# setenforce 0
MariaDB [(none)]> grant replication slave on *.* to slaveroot@slaveIP주소 identified by '1234';
MariaDB [(none)]> flush privileges;
DB 이중화를 위해서는 마스터의 포지션 넘버 확인 중요!!
MariaDB [(none)]> show master status;
position 번호 확인!! 472
File : mysql-bin.000003
=> 쿼리를 작성하면 포지션 번호가 변경됨
change master to master_host='192.168.1.111',
master_user='slaveroot',
master_password='1234',
master_port=3306,
master_log_file='mysql-bin.000003',
master_log_pos=472;
MariaDB [(none)]> flush previleges;
MariaDB [(none)]> show slave status\G;
Slave_IO_Running: No -> yes로 변경해야 됨
Slave_SQL_Running: No -> yes로 변경해야 됨
Stop slave
MariaDB [(none)]> show master status\G;
position이 563
으로 변경됨
방향키를 위로 올려서 'change.... 되어있는 명령어 찾음
변경된 포지션 번호로 다시 설정
MariaDB [(none)]> change master to master_host='192.168.1.111', master_user='slaveroot', master_password='1234', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos=563;
MariaDB [(none)]> start slave;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> show slave status\G;
MariaDB [(none)]> create database MasterDB2;
- Master에 MasterDB2 생성
slave 쪽에도 MasterDB2 생성됨. (이중화 성공!)