天天看點

MySQL資料庫主從安裝配置使用指南MariaDB主從安裝配置安裝MariaDBMariaDB主從配置注意點

MariaDB主從安裝配置

  • 使用MariaDB做資料庫實作主從配置
    • MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群維護,完全相容MySQL,包括API和指令行,可以作為MySQL的替代品
    • 在存儲引擎方面,使用XtraDB代替MySQL的InnoDB
  • 郵件類型:
    • 使用者安全類
    • 訂單類
    • 統計類
    • 消息類
Linux 7修改IP位址
  • 在網絡擴充卡中生成MAC位址
  • 進入編輯 /etc/sysconfig/network-scripts/ifcfg-eno16777736
  • 修改HWADDR為MAC位址,修改IPADDR為IP位址
  • 運作service network restart
  • 進入 /etc/hostname修改hostname
  • 運作hostname bhz34

安裝MariaDB

配置本地yum源:
  • cd /etc/yum.repos.d/
  • 建立一個檔案,以repo結尾:yum.repo
  • 添加如下配置:
name=yum
enabled=1
baseurl=(url位址)
gpgcheck=0           
  • 查詢是否已經存在MariaDB
systemctl stop mariadb            停止MariaDB服務
rpm -qa | grep mariadb            查詢安裝包           
  • 解除安裝已經存在的MariaDB
rpm -e mariadb-server
rpm -e mariadb
rpm -e --nodeps mariadb-libs           
  • 執行yum安裝MariaDB
yum -y install mariadb mariadb-server           
  • 複制配置檔案
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf           
  • 配置不區分表名的大小寫
vim /etc/my.cnf

在[mysqld]後增加配置
lower_case_table_names=1           
  • 啟動mariadb服務并開機自動運作
systemctl start mariadb
systemctl enable mariadb           
  • 禁用防火牆
systemctl status firewalld        檢視防火牆狀态
systemctl stop firewalld        停止防火牆
systemctl disable firewalld        設定開機不啟用防火牆           
  • 配置MariaDB資料庫,執行腳本: /usr/bin/mysql_secure_installation,然後根據提示操作
/usr/bin/mysql_secure_installation           

MariaDB主從配置

  • 修改 /etc/my.cnf配置檔案中的server-id
    • 主節點預設為1,不需要修改
    • 修改從節點的server-id
server-id=2           
  • 重新開機從節點(slave)上的MariaDB
systemctl restart mariadb           
  • 在主節點建立主從複制使用者并授權Slave
mysql -uroot -proot            登入MariaDB資料庫
<mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';        *.* - 所有權限    % - 任意位址           
  • 查詢MySQL中主節點(master)的狀态
show master status;           
  • 配置從節點(slave)
mysql -uroot -proot            登入從節點的MariaDB資料庫
<mysql> CHANGE MASTER TO MASTER_HOST='主節點IP',MASTER_USER='主節點授權使用者',MASTER_PASSWORD='主節點授權使用者密碼',MASTER_LOG_FILE='主節點狀态中的File',MASTER_LOG_POS='主節點狀态中的Position';           
  • 檢視主從狀态驗證
show slave status\G;           
  • 授權遠端root登入,主從資料庫都要進行授權
mysql -uroot -proot        登入MariaDB資料庫
<mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
<mysql> FLUSH PRIVILEGES;           

注意點

  • ==使用MySQL做主從資料庫,不允許對從節點資料庫進行修改==

解決方案

  • 原因:
    • 程式可能在slave上進行了寫操作
    • 可能是slave機器重新開機後,事務復原造成的
  • 事務復原的解決辦法:
<mysql> stop slave;
<mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
<mysql> start slave;           
  • 首先停掉slave服務
<mysql> slave stop;           
  • 進入master伺服器檢視主機狀态,記錄File和Position對應的值
<mysql> show master status;           
  • 然後進入slave伺服器執行手動同步
<mysql> CHANGE MASTER TO MASTER_HOST='主節點IP',MASTER_USER='主節點授權使用者',MASTER_PASSWORD='主節點授權使用者密碼',MASTER_LOG_FILE='主節點狀态中的File',MASTER_LOG_POS='主節點狀态中的Position';           
  • 最後啟動slave資料庫
<mysql> start slave;