詳解Mysql主從同步配置實(shí)戰(zhàn)
1、Introduction
之前寫過一篇文章:Mysql主從同步的原理。
相信看過這篇文章的童鞋,都摩拳擦掌,躍躍一試了吧?
今天我們就來一次mysql主從同步實(shí)戰(zhàn)!
2、環(huán)境說明
os:ubuntu16.04
mysql:5.7.17
下面的實(shí)戰(zhàn)演練,都是基于上面的環(huán)境。當(dāng)然,其他環(huán)境也大同小異。
3、進(jìn)入實(shí)戰(zhàn)
工具
2臺機(jī)器:
master IP:192.168.33.22
slave IP:192.168.33.33
master機(jī)器上的操作
1、更改配置文件
我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf。
配置如下:
bind-address = 192.168.33.22 #your master ip server-id = 1 #在master-slave架構(gòu)中,每臺機(jī)器節(jié)點(diǎn)都需要有唯一的server-id log_bin = /var/log/mysql/mysql-bin.log #開啟binlog
2、重啟mysql,以使配置文件生效。
sudo systemctl restart mysql
3、創(chuàng)建主從同步的mysql user。
$ mysql -u root -p Password: ##創(chuàng)建slave1用戶,并指定該用戶只能在主機(jī)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權(quán)限。 mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33'; Query OK, 0 rows affected (0.00 sec)
4、為MYSQL加讀鎖
為了主庫與從庫的數(shù)據(jù)保持一致,我們先為mysql加入讀鎖,使其變?yōu)橹蛔x。
mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec)
5、記錄下來MASTER REPLICATION LOG 的位置
該信息稍后會用到。
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)
6、將master DB中現(xiàn)有的數(shù)據(jù)信息導(dǎo)出
$ mysqldump -u root -p --all-databases --master-data > dbdump.sql
7、接觸master DB的讀鎖
mysql> UNLOCK TABLES;
8、將步驟6中的dbdump.sql文件copy到slave
scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu
slave機(jī)器上的操作
1、更改配置文件
我們找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf。
更改配置如下:
bind-address = 192.168.33.33 #your slave ip server-id = 2 #master-slave結(jié)構(gòu)中,唯一的server-id log_bin = /var/log/mysql/mysql-bin.log #開啟binlog
2、重啟mysql,以使配置文件生效
sudo systemctl restart mysql
3、導(dǎo)入從master DB。 導(dǎo)出的dbdump.sql文件,以使master-slave數(shù)據(jù)一致
$ mysql -u root -p < /home/ubuntu/dbdump.sql
4、使slave與master建立連接,從而同步
$ 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)
MASTER_LOG_FILE='mysql-bin.000001'與MASTER_LOG_POS=613的值,是從上面的 SHOW MASTER STATUS 得到的。
經(jīng)過如此設(shè)置之后,就可以進(jìn)行master-slave同步了~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mysql授予用戶遠(yuǎn)程訪問權(quán)限的實(shí)現(xiàn)
在默認(rèn)情況下,MySQL 數(shù)據(jù)庫僅允許在本地主機(jī)上進(jìn)行訪問,如果您需要遠(yuǎn)程連接到 MySQL 數(shù)據(jù)庫,您需要授予用戶遠(yuǎn)程訪問權(quán)限,本文就來2023-11-11
mysql5.7.13 環(huán)境搭建教程(解壓縮版)
這篇文章主要為大家詳細(xì)介紹了mysql解壓縮版環(huán)境搭建教程,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-07-07
MySQL數(shù)據(jù)庫show processlist指令使用解析
這篇文章主要介紹了MySQL數(shù)據(jù)庫show processlist指令使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
MySQL 用戶管理和數(shù)據(jù)庫權(quán)限問題
MySQL作為世界上最流行的開源關(guān)系型數(shù)據(jù)庫,在實(shí)際生產(chǎn)環(huán)境中,合理的用戶管理和權(quán)限控制是確保數(shù)據(jù)安全的重要基石,本文將從零開始,手把手教你掌握MySQL的用戶管理和權(quán)限控制,感興趣的朋友一起看看吧2025-06-06
JDBC連接mysql8和mysql5.7的注意事項(xiàng)
這篇文章主要介紹了JDBC連接mysql8和mysql5.7的注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義
關(guān)于MySQL數(shù)據(jù)類型decimal中n和m分別表示什么含義?本文就此問題作了簡單論述,并創(chuàng)建相關(guān)表進(jìn)行驗(yàn)證,需要的朋友可以了解下。2017-10-10

