Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Cấu hình server
- Anh tạo 2 server với 2 IP
- ## Chuan bi
- - Server 1: 192.168.15 (đây sẽ là server master)
- - Server 2: 192.168.17 (Đây sẽ là server slave)
- ## Cấu hình cho server master
- Mở file /etc/mysql/mysql.conf.d/mysqld.cnf để cấu hình một vài thông tin cần thiết
- ```sh
- sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- ```
- Tìm dòng bind-address và sửa thành
- ```properties
- bind-address = 0.0.0.0
- ```
- Tìm dòng
- ```properties
- # server-id = 1
- ```
- Bỏ dấu # phía trước đi
- Ngay phía dưới dòng đó, ta thấy dòng
- ```properties
- # log_bin = /var/log/mysql/mysql-bin.log
- ```
- Khởi động lại mysql
- ```sh
- sudo systemctl restart mysql
- ```
- Tạo user để các slave có thể truy cập vào master mà đọc file log
- ```sh
- mysql> CREATE USER 'slave'@'192.168.10.17' IDENTIFIED BY 'slavepass';
- mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.10.17';
- mysql>FLUSH PRIVILEGES;
- ```
- Bằng cách chạy các lệnh trên, anh A tạo ra một user có tên là slave, mật khẩu là slavepass, user này được phép truy cập từ server có IP là 192.168.10.17
- Bạn có để ý rằng anh A tìm hiểu được các db slave sẽ đọc file log của db master không? Chính vì thế anh ý phải xem xem db master sẽ log ra file nào bằng cách chạy command sau
- ```sql
- mysql> show master status;
- ```
- Chúng ta sẽ thấy kết quả như này:
- ```sql
- +------------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +------------------+----------+--------------+------------------+-------------------+
- | mysql-bin.000028 | 499 | scart_2019 | | |
- +------------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
- ```
- ** Lưu ý: Hãy để ý thông tin File là mysql-bin.000028, Position là 499, đây là 2 thông tin quan trọng sẽ sử dụng ở phần sau
- Bạn có để ý rằng anh A tìm hiểu được db master và db slave phải giống hệt nhau không? Chính vì để đảm bảo các db slave giống với db master, anh ý đã dump db master để có thể import vào các db slave sau này.
- ```sh
- mysqldump -u root -p --opt cart > cart.sql
- ```
- ## Cấu hình cho server slave
- Mở file /etc/mysql/mysql.conf.d/mysqld.cnf, cấu hình một số thông tin như sau
- ```properties
- server-id = 2
- log_bin = /var/log/mysql/mysql-bin.log
- ```
- Khởi động lại mysql
- ```sh
- sudo systemctl restart mysql
- ```
- Tạo database
- ```sh
- mysql> create database cart;
- mysql> exit;
- ```
- Import database
- ```sh
- mysql -u root -p cart < /path/to/cart.sql
- ```
- Kết nối server slave tới server master
- ```sh
- mysql> STOP SLAVE; # Ngừng slave nếu trước đó có bật
- mysql> CHANGE MASTER TO
- -> MASTER_HOST='192.168.10.15', # Đây chính là IP của server master
- -> MASTER_USER='slave', # Tên tài khoản của slave tạo ở server master
- -> MASTER_PASSWORD='slavepass', # Mật khẩu của tài khoản slave tạo ở server master
- -> MASTER_LOG_FILE='mysql-bin.000028', # File log của server master
- -> MASTER_LOG_POS=499; # Position file log của server master
- mysql> START SLAVE; # Khởi động lại slave
- ```
- Quá trình cấu hình cho server master và server slave của anh A như vậy là kết thúc. Để đảm bảo 2 server đã kết nối với nhau. Anh A có chạy thử một câu lệnh Insert ở server master, sau đó qua server slave để truy vấn thì thấy có kết quả. Như vậy anh A đã thấy rằng 2 server đã có sự kết nối với nhau, quá trình cấu hình server master - slave thành công mỹ mãn.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement