1. 程式人生 > >搭建MySQL伺服器, 並實現主從複製

搭建MySQL伺服器, 並實現主從複製

環境

主庫ip:192.168.253.128
從庫ip:192.168.253.140
系統:CentOS7
MySQL版本:5.6.39

第一步:安裝MySQL

這裡使用二進位制包方式安裝,二進位制包可以在官網下載 https://dev.mysql.com/downloads/mysql/

在主庫和從庫上都安裝MySQL

tar -xf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql5.6
ln -sv /usr/local/mysql5.6 /usr/local/mysql
PATH=/usr/local/mysql/bin/:$PATH
useradd -M -s /sbin/nologin  mysql
chown -R mysql:mysql /usr/local/mysql5.6

初始化資料庫

yum install perl-Data-Dumper -y
yum install libaio libaio-devel -y #不安裝這個包的話初始化資料庫可能會報錯缺包
/usr/local/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

第二步:修改主庫配置檔案

[[email protected] src]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
user=mysql
innodb_file_per_table=1
server-id=1
log-bin=/usr/local/mysql/data/master-log

[mysqld_safe]
log-error=/usr/local/mysql/data/err.log
pid-file=/usr/local/mysql/data/mysql.pid

!includedir /etc/my.cnf.d

啟動主庫

mysqld_safe  &

進入

mysql

在這裡插入圖片描述
進行一些簡單的安全設定

 mysql_secure_installation -uroot

在這裡插入圖片描述

在這裡插入圖片描述

進入資料庫新增使用者,允許從庫連線

mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'192.168.253.140' IDENTIFIED BY  'replication';

第三步:修改從庫配置檔案

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
user=mysql
innodb_file_per_table=1
server-id=2    #這裡的server-id一定要跟主庫不同
relay-log=/usr/local/mysql/data  

[mysqld_safe]
log-error=/usr/local/mysql/data/err.log 
pid-file=/usr/local/mysql/data/mysql.pid  

!includedir /etc/my.cnf.d

啟動

mysqld_safe  &

進行一些簡單的安全設定

 mysql_secure_installation -uroot

第四步:備份主庫

mysqldump -uroot -p --flush-logs --quick --single-transaction --master-data=2 --all-databases > ~/alldb.sql

再然後在從庫上還原備份的主庫

scp [email protected]:/root/alldb.sql ~/ #把備份檔案拉到從庫機器上
mysql -uroot -p < ~/alldb.sql  # 匯入備份檔案

第五步:在從庫配置主從

首先需要看一下邏輯備份的檔案,看一下主庫binlog日誌的位置,從哪開始往下複製
在這裡插入圖片描述
根據位置設定主從

CHANGE MASTER TO 
MASTER_HOST='192.168.253.128', 
MASTER_USER='repl', 
MASTER_PASSWORD='replication', 
MASTER_LOG_FILE='master-log.000002', 
MASTER_LOG_POS=120;

啟動

mysql> START SLAVE;

檢視是否成功

mysql> SHOW SLAVE STATUS\G

在這裡插入圖片描述
看到下面這兩個就意味著成功了。