搭建MySQL伺服器, 並實現主從複製
阿新 • • 發佈:2019-01-13
環境
主庫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
看到下面這兩個就意味著成功了。