1. 程式人生 > 其它 >Linux——配置主從資料庫服務

Linux——配置主從資料庫服務

主從資料庫

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鍵

宣告:未經許可,不得轉載