MySQL主從復制的簡單搭建


@

1、MySQL一主一從的簡單搭建

1.1、主從復制簡介

在實際生產中,數據的重要性不言而喻。如果我們的數據庫只有一台服務器,那么很容易產生單點故障的問題,如果服務器宕機或者損壞了,那么整個數據庫的數據就丟失了,這是重大的安全事故。所有我們必須部署兩台或兩台以上的服務器來存儲我們的數據。也就是說我們將數據復制多份放在不同的服務器上。當某台服務器宕機后其他服務器還能提供服務。

1.2、MySQL主從復制簡介

主從復制是指服務器分為主服務器和從服務器,主服務器負責讀和寫,從服務器只負責讀,主從復制也叫 master/slave,master是主,slave是從,但是並沒有強制,也就是說從也可以寫,主也可以讀,只不過一般我們不這么做。主從復制可以實現對數據庫備份和讀寫分離。

1.3、主從復制的架構

架構

1.4、前期准備

  1. 需要兩台或者兩台以上的服務器或者虛擬機
  2. 保證每台服務器上已經安裝好了mysql並且能正常啟動

1.5、主要配置實現

1.5.1、測試環境

主服務器ip:176.20.92.71
從服務器ip:176.20.92.73
MySQL版本:5.7.18
Linux版本:centos7

1.5.2、配置my.cnf文件

注意:如果沒有這個配置文件的話可以自己在數據庫的data目錄下新建一個這個文件然后添加如下配置

[client]
port        = 3306
socket      = /usr/local/mysql-5.7.18/data/mysql.sock
default-character-set=utf8

[mysqld]
port    = 3306
socket  = /usr/local/mysql-5.7.18/data/mysql.sock
datadir = /usr/local/mysql-5.7.18/data
log-error = /usr/local/mysql-5.7.18/data/error.log
pid-file = /usr/local/mysql-5.7.18/data/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

注意 /usr/local/mysql-5.7.18/data 是自己服務器數據庫的的data路徑

1.5.3、啟動mysql測試

這里不是正常啟動,而是通過my.cnf這個配置文件啟動mysql

./mysqld_safe --defaults-file=/usr/local/mysql-5.7.18/data/my.cnf &

主從兩邊啟動都成功后,需要登錄mysql進行測試

./mysql -uroot -h127.0.0.1 -p

主從兩邊都登錄成功后再進行下面的配置

1.5.4、配置主從結構

1.5.4.1、主服務器配置

在my.cnf文件中加入如下配置,然后重新啟動mysql

log-bin=mysql-bin   	#表示啟用二進制日志
server-id=71 		#表示server編號,編號要唯一

登入mysql輸入如下命令

在主服務器上創建復制數據的賬號並授權

grant replication slave on *.* to 'copy'@'%' identified by '123456';

查看主服務器狀態 默認初始值:
File:mysql-bin.000001
Position:154

show master status;

不是初始狀態
如果不是初始值,是因為設置了copy用戶導致Position數據增加 需要重置一下狀態

重置狀態

reset master;

重置之后再次查看狀態
重置初始狀態
到這里主服務器的配置就完成了,下面來進行從服務器的配置

1.5.4.2、從服務器配置

在my.cnf文件中加入如下配置,然后重新啟動mysql

server-id=73 		#表示server編號,編號要唯一

登入mysql輸入如下命令

查看服務器狀態 初始狀態:Empty set

show slave status;

如果不是初始狀態,建議重置一下

重置命令如下

stop slave; 	#停止復制,相當於終止從服務器上的IO和SQL線程
reset slave;

設置從服務器的master

change master to master_host='176.20.92.71',master_user='copy',

master_port=3306,master_password='123456',

master_log_file='mysql-bin.000001',master_log_pos=154;

執行開始復制

start slave;

查看主從復制是否搭建完成

show slave status \G

搭建狀態
如果 Slave_IO_Running: 為no 執行如下命令

stop slave;
reset slave;
start slave;

在此mysql的主從復制搭建就完成了,下面來進行測試

1.6、主從復制測試

在主服務器中建立一個testdb數據庫
建庫
在主服務器的testdb中建立一個t_user表

建表
可以發現主服務器建立t_user表從服務器也會自動創建t_user表

在主服務器中添加值
插值測試
可以發現主服務器的表中添加了值,從服務器中的表中也會添加一模一樣的值

在此mysql主從復制的簡單搭建就全部完成了


免責聲明!

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



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