溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中如何實(shí)現(xiàn)主從復(fù)制與讀寫分離

發(fā)布時(shí)間:2021-07-26 16:40:52 來源:億速云 閱讀:130 作者:Leah 欄目:數(shù)據(jù)庫

MySQL中如何實(shí)現(xiàn)主從復(fù)制與讀寫分離,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

1,mysql的配置

CentOS 5.x,6.0編譯安裝Nginx1.2.3+MySQL5.5.15+PHP5.3.6

我是再這個(gè)環(huán)境下做測試的,我是配置了1臺。利用VMware Workstation拷貝出來多臺服務(wù)器的,所以環(huán)境絕對一樣。

2,場景描述

主數(shù)據(jù)庫服務(wù)器:192.168.10.130
從數(shù)據(jù)庫服務(wù)器:192.168.10.131

3,配置主服務(wù)器

修改從服務(wù)器的配置文件,my.cnf 不一定路徑和我一樣哦,注意修改

vi etc/my.cnf

確定 server-id = 1,并確保這個(gè)ID沒有被別的MySQL服務(wù)所使用。

啟動mysql服務(wù)(192.168.10.130)

/etc/init.d/mysqld  start

通過命令行登錄管理MySQL服務(wù)器

mysql -uroot -p

授權(quán)給從數(shù)據(jù)庫服務(wù)器192.168.10.131

mysql> GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.10.131' identified by '123';

查詢主數(shù)據(jù)庫狀態(tài)

Mysql> show master status;

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 261 | | |
+------------------+----------+--------------+------------------+

記錄下 FILE (mysql-bin.000005) 及 Position(261) 的值,在后面進(jìn)行從服務(wù)器操作的時(shí)候需要用到。

4,配置從服務(wù)器

修改從服務(wù)器的配置文件,my.cnf 不一定路徑和我一樣哦,注意修改

vi etc/my.cnf

將 server-id = 1修改為 server-id = 2,并確保這個(gè)ID沒有被別的MySQL服務(wù)所使用。

啟動mysql服務(wù)

/opt/mysql/init.d/mysql start

通過命令行登錄管理MySQL服務(wù)器

mysql -uroot -p

執(zhí)行同步SQL語句

mysql> change master to
master_host=’192.168.10.130’,
master_user=’rep1’,
master_password=’123’,
master_log_file=’mysql-bin.000005’,
master_log_pos=261;

注意上面的數(shù)據(jù)要和主服務(wù)器一樣,否則同步會失敗!
 

正確執(zhí)行后啟動Slave同步進(jìn)程

mysql> start slave;

主從同步檢查

mysql> show slave status\G

其中Slave_IO_Running 與 Slave_SQL_Running 的值都必須為YES,才表明狀態(tài)正常。

如果不是,請檢查上面是否那一步驟有問題!可以留言給我。。。如果都YES 可以進(jìn)入下一步操作

5,第一次同步主從服務(wù)器數(shù)據(jù)

鎖定主服務(wù)器mysql:

mysql> FLUSH TABLES WITH READ LOCK;

鎖定從服務(wù)器mysql:

mysql> FLUSH TABLES WITH READ LOCK;

將主服務(wù)器的數(shù)據(jù)文件(整個(gè)/opt/mysql/data目錄)復(fù)制到從服務(wù)器,建議通過tar歸檔壓縮后再傳到從服務(wù)器解壓覆蓋。

開啟主服務(wù)器mysql:

mysql> UNLOCK TABLES;

開啟從服務(wù)器mysql:

mysql> UNLOCK TABLES;

6,測試是否同步

在主服務(wù)器上操作:

 mysql> create database first_db;
 mysql> use first_db;
 mysql> create table first_tb(id int(3),name char(10));
 mysql> INSERT INTO `first_tb` VALUES ('1', '1');

在從服務(wù)器上查看....

mysql> show databases;

=============================
+--------------------+
| Database |
+--------------------+
| information_schema |
| first_db |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
=============================

看完上述內(nèi)容,你們掌握MySQL中如何實(shí)現(xiàn)主從復(fù)制與讀寫分離的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI