日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

搭建MHA

發布時間:2025/4/16 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建MHA 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝MySQL 5.7

  • yum源的配置文件如下
[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ gpgcheck=0
  • 使用yum install mysql-community-server -y安裝mysql
  • 安裝完畢mysql之后的配置操作
    • systemctl start mysqld
    • cat /var/log/mysqld.log | grep password --> 獲取臨時密碼
    • mysql -uroot -p -> 輸入臨時密碼
    • set password for 'root'@'localhost' = password('New@password123');
    • flush privileges;
    • systemctl stop mysqld -> 先關閉mysqld, 注意: 如果卡住了, 使用Ctrl + C結束, 在使用ps aux | grep mysqld 查看到mysqld進程的id號, 使用kill -9 id殺死mysqld進程, 在使用systemctl stop mysqld
  • 修改/etc/my.cnf配置文件的[mysqld]域
    • master節點
      datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock server_id=1 innodb_file_per_table=1 log_bin=master-bin relay_log=relay-bin read_only=1 relay_log_purge=0 # 一定要開啟 plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" rpl_semi_sync_master_enabled = 1 rpl_semi_sync_slave_enabled = 1 rpl_semi_sync_master_timeout = 5000
    • slave1 節點(主需要修改server_id)
      ```

      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      server_id=10
      innodb_file_per_table=1
      log_bin=master-bin
      relay_log=relay-bin
      read_only=1
      relay_log_purge=0
      plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
      rpl_semi_sync_master_enabled = 1
      rpl_semi_sync_slave_enabled = 1
      rpl_semi_sync_master_timeout = 5000
      ```

      • slave2 節點(主需要修改server_id)
      datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock server_id=11 innodb_file_per_table=1 log_bin=master-bin relay_log=relay-bin read_only=1 relay_log_purge=0 plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" rpl_semi_sync_master_enabled = 1 rpl_semi_sync_slave_enabled = 1 rpl_semi_sync_master_timeout = 5000
  • systemctl start mysqld 啟動master, slave1, slave2節點
  • 這三個節點之間需要ssh互相密鑰通信, 方便起見, 在master節點執行, ssh-keygen -i rsa -P "", 接著使用 ssh-copy-id -i .ssh/id_rsa.pub root@localhost, 接著將.ssh目錄拷貝到其他節點即可
  • 在master節點創建用戶'repl'@'192.168.1.%'(該repl用戶只用在master上存在), 創建用戶'mhaadmin'@'192.168.1.%'(該用戶需要在所有的節點上都有, 因為該用戶是監控用戶)
  • 為repl用戶賦予replication slave權限, 為mhaadmin賦予all權限
  • create user 'repl'@192.168.1.%' identified by 'New@password123';
  • grant replication slave on . to 'repl'@'192.168.1.%';
  • create user 'mhaamdin'@192.168.1.%' identified by 'New@password123';
  • grant all on . to 'mhaamdin'@'192.168.1.%';

安裝配置mha4mysql

  • rpm(mha4mysql-manager, mha4mysql-node)包自己找
  • 在所有節點上使用yum安裝這兩個包, 安裝時會安裝很多的依賴包
  • 創建配置文件的目錄(所有節點): mkdir -pv /etc/masterha
  • 在master節點中, vim /etc/masterha/app1.cnf
[server default] user=mhaadmin # 監控用戶, 在所有的mysql節點中都要有 password=yourpassword manager_workdir=/data/masterha/app1 # 工作目錄, 會自動創建的 manager_log=/data/masterha/app1/manager.log # 日志文件的路徑 remote_workdir=/data/masterha/app1 # slave節點的工作目錄, 一般與master一樣 ssh_user=root # ssh連接登錄時的用戶, mha依賴于ssh repl_user=repl # 復制的用戶 repl_password=yourpassword ping_interval=1 # 心跳頻率 master_ip_failover_script= /usr/local/bin/master_ip_failover //設置自動failover時候的切換腳本,perl腳本, 實現VIP的切換 master_ip_online_change_script= /usr/local/bin/master_ip_online_change //設置手動切換時候的切換腳本[server1] hostname=172.20.10.7 port=3306 candidate_master=1 # 當master掛時提升為master[server2] hostname=172.20.10.8 port=3306 candidate_master=1 當master掛時提升為master[server3] hostname=172.20.10.9 port=3306 # candidate_master=1

配置MySQL的主從復制

  • 在slave1和slave2節點中, 使用change master to...命令配置好連接參數
  • 在slave1和slave2中使用start slave
  • 在master節點中使用show slave hosts查看是否成功構建復制架構

測試MHA

  • masterha_check_ssh --conf=/etc/masterha/app1.cnf # 測試ssh的連接
  • masterha_check_repl --conf=/etc/masterha/app1.cnf # 測試復制是否可用
  • masterha_check_status --conf=/etc/masterha/app1.cnf # 測試是否運行, 現在應該是NOT RUNNING

啟動MHA

  • nohub masterha_manager --remove_dead_master_conf --ignore_last_failover --conf=/etc/masterha/app1.cnf > /data/masterha/app1/manager.log 2>&1 & # 所有的信息都重定向到/data/masterha/app1/manager.log中
  • masterha_check_status --conf=/etc/masterha/app1.cnf # 此時查看應該已經運行了
–remove_dead_master_conf 該參數代表當發生主從切換后,老的主庫的ip將會從配置文件中移除。

關閉MHA

  • masterha_stop --conf=/etc/masterha/app1.cnf

在master節點當機時, 會將VIP遷移到候選那的master節點上, 在manager.log日志中可以看見

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的搭建MHA的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。