MySQL主從配置及haproxy和keepalived搭建過程解析
本篇文章主要介紹如何搭建MySQL主主配置、主從配置、haproxy、keepalived,已經搭建過程中的一些問題。本次運行環境是在docker中,也會介紹一些docker的知識
docker 小知識
創建本機可訪問的MySQL容器
1、直接用 docker 拉取別人搭建好的MySQL
2、自己創建 centos 或者其他容器,下載安裝MySQL
我是采用的第二種方案
命令: docker run -itd –name mysql_server1 -p 13306:3306 centos:7
13306 是本地的端口,3306是容器的端口。這樣本地可以根據端口13306訪問容器中的數據庫
-i: 交互式操作。
-t: 終端。
-d: 後臺運行容器,並返回容器ID;
創建harpoxy、Keepalive 的容器
docker run -itd –privileged=true –name mysql_server1 -p 23396:3306 centos:7 /sbin/init
–privileged=true 和 /sbin/init 加上這兩個可以在容器中使用systemctl的命令
然後通過docker exec -it 容器ID 進入
如果沒有 systemctl 運行haproxy和Keepalive會遇到一些問題,且不容易找到錯誤日志
下載MySQL
1、粘貼MySQL社區最新的MySQL rpm包鏈接,wget下載
2、rpm -ivh mysql.rpm (下載的rpm文件)
3、yum install mysql
4、在 /var/log/mysqld.log 中找到初始化密碼,登錄,設置密碼
MySQL主主配置
我分別在172.17.0.2和172.17.0.4 中安裝瞭MySQL,用於搭建主主配置
172.17.0.2 MySQL 配置
1、編輯 MySQL 配置文件 vim /etc/my.cnf。不知道配置文件在哪的可以執行 mysql –help | grep 'Default options' -A 1 這個命令
server-id = 1 # 唯一的不能重復 log-bin = mysql-bin # 開啟二進制日志 binlog_format = ROW # 日志格式 max_binlog_size = 100M # 最大日志文件大小 binlog-do-db = itma1 # 支持主從的db
2、老的MySQL版本可能需要配置讓主鍵不同的參數,本次使用環境是MySQL8.0默認不會主鍵沖突,不需要額外配置
172.17.0.2的配置
server-id = 2 log-bin = mysql-bin binlog_format = ROW max_binlog_size = 100M binlog-do-db = itma1
執行sql命令
# 172.17.0.2 執行命令 # 創建用戶 create user slave@"%" IDENTIFIED BY "test123"; # 授予權限 GRANT REPLICATION SLAVE ON *.* TO slave@"%"; show master status\G # 172.17.0.4 執行命令 change master to master_host="gateway",master_port=13306, master_user="slave",master_password="test123",master_log_file="mysql-bin.000001",master_log_pos=157; start slave; show slave status\G
以上是 0.2是主,0.4是從。上邊的命令兩個機器反過來分別執行一次,即可配置成 0.4主,0.2是從,這樣主主配置搭建完成
配置過程中可能會出現一些錯誤,利用 show slave status\G 可以查看具體錯誤信息,不過也有可能出現命令操作太快,還未鏈接成功的情況。本人還遇到過主的賬號(slave賬號)需要在主的服務器登錄一次,從服務器才能鏈接成功的情況,暫時不確定什麼原因,有知道的可以留言,非常感謝
MySQL主從配置
1、從庫配置文件,所屬主庫為 172.17.0.2
server-id = 11 log-bin = mysql-bin binlog_format = ROW log_slave_updates = 1 max_binlog_size = 100M replicate-do-db = itma1 # 從庫更新也寫binlog
2、執行命令
change master to master_host="gateway",master_port=13306, master_user="slave",master_password="test123",master_log_file="mysql-bin.000001",master_log_pos=157; start slave;
haproxy 配置
新創建centos容器
yum install haproxy # 配置文件 vim /etc/haproxy/haproxy.cfg # 最好先備份一下 systemctl start haproxy systemctl start haproxy
配置如下圖,註意:model 需要時tcp,http雖然檢測沒問題,但是通過本服務器的地址鏈接不到MySQL服務
配置成功之後,就可以在其他服務器通過該服務器地址鏈接MySQL瞭
Keepalived 配置
使用haproxy同樣的服務器
yum install keepalived # 配置文件 vim /etc/keepalived/keepalived.conf 最好先備份 systemctl start keepalived systemctl status keepalived
配置如下圖
haproxy 和keepalived 可以配置到多個服務器上,keepalived 會根據優先級去判斷使用哪臺主機,至於這樣配置的好處這裡就不過多介紹
到此這篇關於MySQL主從配置及haproxy和keepalived搭建的文章就介紹到這瞭,更多相關mysql haproxy和keepalived搭建內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!