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
systemctl stop mariadb 停止MariaDB服務
rpm -qa | grep mariadb 查詢安裝包
rpm -e mariadb-server
rpm -e mariadb
rpm -e --nodeps mariadb-libs
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
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
systemctl restart mariadb
mysql -uroot -proot 登入MariaDB資料庫
<mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave'; *.* - 所有權限 % - 任意位址
show master status;
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;
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;
<mysql> slave stop;
- 進入master伺服器檢視主機狀态,記錄File和Position對應的值
<mysql> show master status;
<mysql> CHANGE MASTER TO MASTER_HOST='主節點IP',MASTER_USER='主節點授權使用者',MASTER_PASSWORD='主節點授權使用者密碼',MASTER_LOG_FILE='主節點狀态中的File',MASTER_LOG_POS='主節點狀态中的Position';
<mysql> start slave;