天天看點

資料庫主從同步、讀寫分離配置

資料庫主從同步、讀寫分離配置

資料庫主從同步、讀寫分離在處理高并發當中也是很重要到的一個單元,同時,資料庫主從同步、讀寫分離不但可以用來處理高并發,同時還可以擁有負載均衡、資料庫備份等功能;下面就我我自己在配置主從同步的步驟做一下記錄:

準備兩個資料庫

主資料庫IP :118.25.57.*;

從資料庫IP :111.231.197.;

前提

兩個資料庫建立相同的賬号和密碼

并且兩個資料庫的賬号都打開遠端控制

這裡 主從庫最好建立一個賬戶,專門使用者主從同步;

修改主資料庫配置檔案

vim /etc/my.cnf

在[mysqld]下加

//執行個體ID 不能和叢集中的其他MYSQL 執行個體一緻

server-id = 99

// bin log 檔案字首

log-bin=mysql-bin

// 對應要同步的資料庫

binlog-do-db-tongbu

//對應不需要同步的資料庫

binlog-ignore-db=mysql

binlog-ignore-db

binlog-ignore-db=information_schema

binlog-ignore-db=test

binlog-ignore-db=performance_schema

binlog-ignore-db=AAA_READ_THIS_MESSAGE

binlog-ignore-db=palyer

重新開機主資料庫

進入資料庫

cd /phpstudy/mysql/bin

./mysql -u root -p

輸入:

SHOW MASTER STATUS;

mysql> SHOW MASTER STATUS;

±-----------------±---------±--------------±-----------------------------------------------------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

±-----------------±---------±--------------±-----------------------------------------------------------------------+

| mysql-bin.000013 | 107 | tongbu,palyer | mysql,information_schema,test,performance_schema,AAA_READ_THIS_MESSAGE |

±-----------------±---------±--------------±-----------------------------------------------------------------------+

表示配置成功

修改從資料庫配置檔案

vim /etc/my.cnf

在[mysqld]下加

#執行個體ID 不能和叢集中的其他MYSQL 執行個體一緻

server-id = 88

// bin log 檔案字首

log-bin=mysql-bin

// 對應要同步的資料庫

binlog-do-db-tongbu

// 對應不需要同步的資料庫

binlog-ignore-db=mysql

binlog-ignore-db

binlog-ignore-db=information_schema

binlog-ignore-db=test

binlog-ignore-db=performance_schema

binlog-ignore-db=AAA_READ_THIS_MESSAGE

binlog-ignore-db=palyer

注意:my.cnf配置檔案的權限不要給777,最好是給一個655 容許root 使用者使用就可以了

重新開機從資料庫

進入資料庫

cd /phpstudy/mysql/bin

./mysql -u root -p

從資料庫執行

CHANGE MASTER TO MASTER_HOST=‘118.25.57.227’,//主資料庫ip MASTER_PORT=3306,//主資料庫端口

MASTER_USER=‘root’,//主資料庫賬号

MASTER_PASSWORD=‘bdqn123456’,//主資料庫密碼

MASTER_LOG_FILE=‘mysql-bin.000011’,//主資料庫SHOW MASTER STATUS 這一步File 中的檔案名

MASTER_LOG_POS=107;//主資料庫SHOW MASTER STATUS 這一步 Position中的值

測試是否同步成功

從資料庫執行:

show slave status \G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

當看到這兩項都顯示為YES 時表示同步成功。

錯誤處理:當主資料庫執行一條錯誤的sql語句 導緻執行錯誤,會報錯

在從執行這個指令 跳過這一條sql

set global sql_slave_skip_counter=1;

跳過這一個錯誤,然後執行從下一個事件組開始。

注解:最終要實作讀寫分離有兩個方法:第一使用資料庫中間件來自動分流sql 語句

第二:自己在寫背景代碼 server層的時候 讀寫分開連接配接不同的資料庫