SpringBoot項目實戰Day02-MariaDB主從數據庫安裝

項目架構

在這裏插入圖片描述

  • 使用MariaDB做數據庫實現主從配置
    • MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區維護,完全兼容MySQL,包括API和命令行,可以作爲MySQL的替代品
    • 在存儲引擎方面,使用XtraDB代替MySQL的InnoDB
  • 郵件類型:
    • 用戶安全類
    • 訂單類
    • 統計類
    • 消息類

Linux 7修改IP地址

  • 在網絡適配器中生成MAC地址
  • 進入編輯 /etc/sysconfig/network-scripts/ifcfg-eno16777736
  • 修改HWADDRMAC地址,修改IPADDRIP地址
  • 運行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服務器查看主機狀態,記錄FilePosition對應的值
<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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章