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鍵

聲明:未經許可,禁止轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM