主從資料庫
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鍵
宣告:未經許可,不得轉載
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/380808.html
標籤:其他
上一篇:Linux檔案屬性詳述
