《MYSQL數據庫詳解Mysql主從同步配置實戰》要點:
本文介紹了MYSQL數據庫詳解Mysql主從同步配置實戰,希望對您有用。如果有疑問,可以聯系我們。
MYSQL實例1、Introduction
MYSQL實例之前寫過一篇文章:Mysql主從同步的原理.
MYSQL實例相信看過這篇文章的童鞋,都摩拳擦掌,躍躍一試了吧?
MYSQL實例今天我們就來一次mysql主從同步實戰!
MYSQL實例2、環境說明
MYSQL實例os:ubuntu16.04
MYSQL實例mysql:5.7.17
MYSQL實例下面的實戰演練,都是基于上面的環境.當然,其他環境也大同小異.
MYSQL實例3、進入實戰
MYSQL實例工具
MYSQL實例2臺機器:
MYSQL實例master IP:192.168.33.22
MYSQL實例slave? IP:192.168.33.33
MYSQL實例master機器上的操作
MYSQL實例1、更改配置文件
MYSQL實例我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf
.
MYSQL實例配置如下:
MYSQL實例
bind-address = 192.168.33.22 #your master ip
server-id = 1 #在master-slave架構中,每臺機器節點都需要有唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #開啟binlog
MYSQL實例2、重啟mysql,以使配置文件生效.
MYSQL實例
sudo systemctl restart mysql
MYSQL實例3、創建主從同步的mysql user.
MYSQL實例
$ mysql -u root -p
Password:
##創建slave1用戶,并指定該用戶只能在主機192.168.33.33上登錄.
mysql> CREATE USER 'slave1'@'192.168.33.33' IDENTIFIED BY 'slavepass';
Query OK, 0 rows affected (0.00 sec)
##為slave1賦予REPLICATION SLAVE權限.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33';
Query OK, 0 rows affected (0.00 sec)
MYSQL實例4、為MYSQL加讀鎖
MYSQL實例為了主庫與從庫的數據保持一致,我們先為mysql加入讀鎖,使其變為只讀.
MYSQL實例
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
MYSQL實例5、記錄下來MASTER REPLICATION LOG 的位置
MYSQL實例該信息稍后會用到.
MYSQL實例
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 613 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
MYSQL實例6、將master DB中現有的數據信息導出
MYSQL實例
$ mysqldump -u root -p --all-databases --master-data > dbdump.sql
MYSQL實例7、接觸master DB的讀鎖
MYSQL實例
mysql> UNLOCK TABLES;
MYSQL實例8、將步驟6中的dbdump.sql文件copy到slave
MYSQL實例
scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu
MYSQL實例slave機器上的操作
MYSQL實例1、更改配置文件
MYSQL實例我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf
.
MYSQL實例更改配置如下:
MYSQL實例
bind-address = 192.168.33.33 #your slave ip
server-id = 2 #master-slave結構中,唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #開啟binlog
MYSQL實例2、重啟mysql,以使配置文件生效
MYSQL實例
sudo systemctl restart mysql
MYSQL實例3、導入從master DB. 導出的dbdump.sql文件,以使master-slave數據一致
MYSQL實例
$ mysql -u root -p < /home/ubuntu/dbdump.sql
MYSQL實例4、使slave與master建立連接,從而同步
MYSQL實例
$ mysql -u root -p
Password:
mysql> STOP SLAVE;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.33.22',
-> MASTER_USER='slave1',
-> MASTER_PASSWORD='slavepass',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=613;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
MYSQL實例MASTER_LOG_FILE='mysql-bin.000001'與MASTER_LOG_POS=613的值,是從上面的 SHOW MASTER STATUS 得到的.
MYSQL實例經過如此設置之后,就可以進行master-slave同步了~
MYSQL實例以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持維易PHP.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5997.html