數據庫實現簡單的讀寫分離


1.打開mysql數據庫配置文件

vim /etc/my.cnf

 

2.在主服務器master上配置開啟Binary log,主要是在[mysqld]下面添加:

server-id=1 log-bin=master-bin log-bin-index=master-bin.index

 

如圖: 
master my.cnf

3.重啟mysql服務

service mysql restart

 

ps:重啟方式隨意

4.檢查配置效果,進入主數據庫並執行

mysql> SHOW MASTER STATUS;

 

可以看到下圖表示配置沒問題,這里面的File名:master-bin.000001 我們接下來在從數據庫的配置會使用:

5.配置從服務器的 my.cnf

在[mysqld]節點下面添加: 
master status

server-id=2 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin

 

這里面的server-id 一定要和主庫的不同,如圖: 
slave my.cnf
配置完成后同樣重啟從數據庫一下

service mysql restart

 

6.接下來配置兩個數據庫的關聯

首先我們先建立一個操作主從同步的數據庫用戶,切換到主數據庫執行:

mysql> create user repl; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從xxx.xxx.xxx.xx' IDENTIFIED BY 'mysql'; mysql> flush privileges;

 

這個配置的含義就是創建了一個數據庫用戶repl,密碼是mysql, 在從服務器使用repl這個賬號和主服務器連接的時候,就賦予其REPLICATION SLAVE的權限, *.* 表面這個權限是針對主庫的所有表的,其中xxx就是從服務器的ip地址。 
進入從數據庫后執行:

mysql> change master to master_host='主xxx.xxx.xxx.xx',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=0;

 

這里面的xxx是主服務器ip,同時配置端口,repl代表訪問主數據庫的用戶,上述步驟執行完畢后執行start slave啟動配置:

mysql> start slave;

 

start slave
停止主從同步的命令為:

mysql> stop slave;

 

查看狀態命令,\G表示換行查看

mysql> show slave status \G; 

 

可以看到狀態如下: 
slave status
這里看到從數據庫已經在等待主庫的消息了,接下來在主庫的操作,在從庫都會執行了。我們可以主庫負責寫,從庫負責讀(不要在從庫進行寫操作),達到讀寫分離的效果。

我們可以簡單測試:

在主數據庫中創建一個新的數據庫:

mysql> create database testsplit;

 

在從數據庫查看數據庫:

mysql> show databases;

 

可以看到從數據庫也有testsplit這張表了,這里就不上圖了,親測可用。在主數據庫插入數據,從數據庫也可以查到。 

 

 

https://blog.csdn.net/starlh35/article/details/78735510
至此已經實現了數據庫主從同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM