Linux——配置主從資料庫服務
阿新 • • 發佈:2021-12-15
主從資料庫
Linux中,資料庫服務有三種:互為主主,互為主從,一主一從(主從資料庫)
互為主主:資料庫時時更新
互為主從:資料庫達到一定的的容量再更新
一主一從:在主資料庫上面建立的,可以同步到從資料庫;在從資料庫上面建立的,並不可以同步到主資料庫中
服務名 | mariadb |
---|---|
協議名 | mysql |
程序名稱 | mysqld |
埠號 | 3306 |
一、改主機名、寫域名解析檔案
前提:首先要配好網路,yum源
點選檢視配置網路,yum
# 配置網路 # (1)虛擬交換機配置為192.168.100.0網段,網路介面卡選擇僅主機模式; # (2)編輯網路配置檔案: [root@wzg ~]# cd /etc/sysconfig/network-scripts/ [root@wzg network-scripts]# vim ifcfg-ens33 #需要修改的引數為: BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.10 PREFIX=24 # (3)重啟網路服務: [root@wzg network-scripts]# systemctl restart network # 配置yum源 # (1)先進入虛擬機器設定,把系統映象連線到虛擬機器的光碟機上; # (2)掛載光碟機裡的映象: [root@wzg ~]# mount /dev/cdrom /media/ mount: /dev/sr0 is write-protected, mounting read-only # (3)修改yum源配置檔案: [root@wzg ~]# cd /etc/yum.repos.d/ [root@wzg yum.repos.d]# ls [root@wzg yum.repos.d]# vim local.repo [rhel] name=rhel baseurl=file:///media enabled=1 gpgcheck=0 # (4)清空yum源快取並檢索yum源 [root@wzg yum.repos.d]# yum clean all [root@wzg yum.repos.d]# yum repolist
注意:mysql1和mysql2都要設定主機名和域名解析
################ mysql1和mysql2 ################ # 主資料庫改為mysql1 hostnamectl set-hostname mysql1 bash # 從資料庫改為mysql2 hostnamectl set-hostname mysql2 bash ################ mysql1 ################ # 做域名解析(兩邊都要做) vim /etc/hosts 加入: 192.168.100.10 mysql1 192.168.100.20 mysql2 # 拷貝到mysql2 scp /etc/hosts 192.168.100.20:/etc
二、安裝服務
注意:mysql1和mysql2都要安裝
################ mysql1和mysql2 ################
# 安裝資料庫軟體包
yum -y install mariadb mariadb-server
# 啟動資料庫服務
systemctl start mariadb
# 設定為開機自啟
systemctl enable mariadb
三、初始化資料庫
注意:mysql1和mysql2都要初始化,並且要先啟動才能初始化
################ mysql1和mysql2 ################ # 初始化資料庫 mysql_secure_installation 回車 #預設為設定密碼 y #設定密碼?密碼設定為000000 y #移除匿名使用者? n #不允許root遠端登入? y #移除測試資料庫? y #重新載入資料庫?
四、修改配置檔案
分別修改mysql1和mysql2的配置檔案
################ mysql1 ################
# 編輯配置檔案
vi /etc/my.cnf
加入:
[mysqld]
log-bin = mysql-bin #設定為主資料庫(也就是以二進位制載入日誌檔案)
server-id = 10 #根據IP的最後一個欄位
# 重啟資料庫服務
systemctl restart mariadb
# 配置防火牆
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
################ mysql2 ################
# 編輯配置檔案
vi /etc/my.cnf
加入:
[mysqld]
server-id = 20
# 重啟資料庫服務
systemctl restart mariadb
五、設定資料庫許可權
分別設定mysql1和mysql2的資料庫許可權
################ mysql1 ################
# 進入資料庫
mysql -uroot -p000000
# 設定許可權(授權,複製許可權)
grant all privileges on *.* to root@'%' identified by "000000";
grant replication slave on *.* to 'user'@'mysql2' identified by '000000';
################ mysql2 ################
# 進入資料庫
mysql -uroot -p000000
# 設定許可權(從庫連線主庫)
grant all privileges on *.* to root@'%' identified by "000000";
change master to master_host='mysql1',master_user='user',master_password='000000';
六、啟動從資料庫
在mysql2上:
################ mysql2 ################
# 啟動從資料庫
start slave;
# 檢視狀態
show slave status\G
# 可以看到Slave_SQL_Running: Yes,表示已開啟從資料庫
七、驗證主從資料庫
在mysql1上建立資料庫,然後在mysql2上檢視是否同步
################ mysql1 ################
# 檢視當前的資料庫
show databases;
# 建立一個新的(class)庫
create database class;
# 進入class資料庫
use class;
# 建立一個student表
create table student(ID int not null primary key,name varchar(20));
# 在表中插入一條資料
insert into student values(001,"wzg");
################ mysql2 ################
# 檢視當前的資料庫(可以看到上面建立的class庫)
show databases;
# 進入class資料庫
use class;
# 檢視class庫中的表(可以看到上面建立的student表)
show tables;
# 檢視student表的具體資訊(可以看到上面插入的一條資料)
select * from student;
# 退出資料庫quit或ctrl+C鍵
宣告:未經許可,不得轉載