MySQL高可用(三)搭建主備同步實戰


目標

掌握如何搭建一主一備的主備架構

實驗環境

  • 系統:Ubuntu 18.04.1 LTS
  • MySQL版本:5.7.32
  • 主庫IP:192.168.200.120
  • 備庫IP:192.168.200.121

操作步驟

1.分別在兩台服務器上安裝MySQL

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

注:要求MySQL版本號一致

2.(主庫)配置同步賬號

創建數據庫復制用戶:

mysql> CREATE USER 'repl'@'192.168.200.121' IDENTIFIED BY '123456';

授權:

mysql> grant replication slave on *.* to 'repl'@'192.168.200.121';

3.(主庫)修改/etc/my.cnf文件,注意確保:server-id 唯一

[mysqld]
bind-address = 192.168.200.120 //這里的IP地址必須是通過ipconfig查出來的IP
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = empw_test
#binlog_ignore_db = include_database_name
binlog_format = row # binlog的格式 row 具有 statement和mixed 不具備的優勢 填寫 row
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1 # 和 sync_binlog 組成雙1 配置 保證數據的完整性

4.(主庫)重啟master端

service mysql restart

5.(主庫)查詢主庫上當前的二進制日志名和偏移量值,記錄下file跟position的值,待會從庫要用

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      154 | empw_test    |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6.(從庫)修改/etc/my.cnf文件,注意確保:server-id 唯一

[mysqld]
server-id = 2

7.(從庫)重啟slave端

service mysql restart

8.(從庫)對從數據庫服務器做相應設置,指定復制使用的用戶,主數據庫服務器的IP、端口以及開始執行復制的日志文件和位置等

mysql> CHANGE MASTER TO MASTER_HOST='192.168.200.120',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=154;

9.(從庫)啟動slave線程

mysql> start slave;

10.主庫跟從庫分別檢查狀態

檢查master的:

mysql> show processlist;
+----+------+-----------------------+------+-------------+------+---------------------------------------------------------------+------------------+
| Id | User | Host                  | db   | Command     | Time | State                                                         | Info             |
+----+------+-----------------------+------+-------------+------+---------------------------------------------------------------+------------------+
|  2 | root | localhost             | NULL | Query       |    0 | starting                                                      | show processlist |
|  3 | repl | 192.168.200.121:56822 | NULL | Binlog Dump |   12 | Master has sent all binlog to slave; waiting for more updates | NULL             |
+----+------+-----------------------+------+-------------+------+---------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)

看到上面的Command: Binlog Dump說明配置成功!

檢查slave的:

mysql> show slave status;

提示: Slave_IO_RunningSlave_SQL_Running 兩個值為YES基本上成功了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM