linux mysql實現讀寫分離


簡介:主數據庫(master):版本:5.7.20   

         從數據庫(slave):版本:5.6

主服務器:負責增刪改

從服務器:負責讀

1.准備工作:

在兩台服務器上安裝好mysql,創建一個pro數據庫.

 2.master主服務器的配置

 1) 修改配置文件my.cnf,命令如下:

  [root@ecs-43d4 bin]# vim /etc/my.cnf

進入文件后:按'a'進入編輯模式,在mysqld中添加如下內容:

        server-id=1

        log_bin=master-bin 

        log_bin_index=master-bin.index

        binlog_do_db=pro

按esc鍵,:qw  保存

#備注:
#server-id 服務器唯一標識。
#log_bin 啟動MySQL二進制日志,即數據同步語句,從數據庫會一條一條的執行這些語句。
#binlog_do_db 指定記錄需要復制的數據庫名,如果復制多個數據庫,重復設置這個選項即可。
#binlog_ignore_db 指定不記錄二進制日志的數據庫,即不需要復制的數據庫名,如果有多個數據庫,重復設置這個選項即可。
#其中需要注意的是,binlog_do_db和binlog_ignore_db為互斥選項,一般只需要一個即可。

  

 2)在主服務器上創建從服務器的用戶和權限

   #進入mysql數據庫,命令如下:

  /usr/local/mysql/mysql-5.7.20-linux-glibc2.12-x86_64/bin/mysql -uroot -p  (mysql -uroot -p)   

  #創建從數據庫的root用戶和權限

grant replication slave on *.* to 'root'@'從服務器的ip' identified by  '服務器的密碼 ' ;

exit;

退出,如下圖:

3)重啟MySQL

service mysqld restart

4)查看主服務器狀態

show master status;

:記住master-bin.000005   154 后面會用到

3.slave從服務器的配置

1) 配置文件my.cnf的修改

 [root@ecs-43d4 bin]# vim /etc/my.cnf

進入文件后:按'a'進入編輯模式,在mysqld中添加如下內容:

#在[mysqld]中添加:
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
#replicate-do-db=test
#備注:
#server-id 服務器唯一標識,如果有多個從服務器,每個服務器的server-id不能重復,跟IP一樣是唯一標識,如果你沒設置server-id或者設置為0,則從服務器不會連接到主服務器。
#relay-log 啟動MySQL二進制日志,可以用來做數據備份和崩潰恢復,或主服務器掛掉了,將此從服務器作為其他從服務器的主服務器。
#replicate-do-db 指定同步的數據庫,如果復制多個數據庫,重復設置這個選項即可。若在master端不指定binlog-do-db,則在slave端可用replication-do-db來過濾。
#replicate-ignore-db 不需要同步的數據庫,如果有多個數據庫,重復設置這個選項即可。
#其中需要注意的是,replicate-do-db和replicate-ignore-db為互斥選項,一般只需要一個即可。

2)重啟MySQL

[root@ecs-39e2 ~]# mysql -uroot -p

3)在從服務器上連接master主服務器

change master to master_host='從服務器的ip',master_port=3306,master_user='root',master_password='從服務器的密碼',master_log_file='master-bin.000005',master_log_pos=154;

4).啟動slave同步數據

mysql> start slave;

5)查看slave信息

mysql> show slave status\G;

如圖:兩個yes是成功

可以自己進行測試,主數據庫新建個表,看看從數據庫是否也有

 參考文章:

https://blog.csdn.net/qq_15092079/article/details/81672920


免責聲明!

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



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