1. 程式人生 > >CentOS 7 mysql-5.6.39主從資料庫讀取分離

CentOS 7 mysql-5.6.39主從資料庫讀取分離

一,環境準備

        兩個mysql資料庫均是在Linux CentOS7 系統下
        mysql的資料庫版本號必須相同均為 mysql-5.6.39
        主伺服器IP地址:192.168.1.112

        從伺服器IP地址:192.168.1.114

二,資料庫主從同步優點

        讀取分離,主資料庫操作,從資料庫讀取。

        資料備份,減少伺服器壓力,防止服務崩潰。

三,主從資料庫配置詳情

        主機部分:

                編輯my.cnf配置檔案

                $ vim /etc/my.cnf

                在[mysqld]裡面新增以下內容

                #主機標示,整數 ,建議用IP末位  
                server-id = 112
                #確保此檔案可寫,開啟bin-log
                log_bin = mysql-bin
                #主機,讀寫都可以
                read-only =0
                #需要備份資料,多個寫多行
                binlog-do-db =tlcss
                #忽略無需備份的資料庫
                binlog-ignore-db = mysql
                binlog-ignore-db = performance_schema

                binlog-ignore-db = information_schema

                修改完之後重啟mysqld服務

                $ service mysqld restart

                登入mysqld服務
                $ mysql -uroot -p
                給從伺服器設定連線許可權
                Mysql>$ grant replication slave,reload,super on *.* to [email protected]

identified by 'root';

                檢視File和position的值,需作記錄

                

        從機部分:

                編輯my.cnf配置檔案     
                $ vim /etc/my.cnf
                在其[mysqld]下新增從伺服器端的配置:
                #從機標識,整數
                server_id = 114
                #確保此檔案可寫,開啟bin-log
                log_bin = mysql-bin
                #從機,只讀
                read_only = 1
                relay_log = mysql-relay-bin
                #需要備份資料,多個寫多行
                binlog-do-db = tlcss
                #忽略無需備份的資料庫
                binlog-ignore-db = mysql
                binlog-ignore-db = performance_schema
                binlog-ignore-db = information_schemal
                #需要備份到具體指定表,多行寫多個
                replicate-do-table = tlcss.tb_user_info
                replicate-do-table = tlcss.tb_trade

                儲存並重啟mysqld服務
                $ service mysqld restart
                測試是否可以正常連線上主機資料庫(預設3306不用指定,若修改了埠,需指定)
                $ mysql -uroot -p -h192.168.1.112 -P3316
                若能登陸主機資料庫,退出mysql命令列
                Mysql>$ exit;
                登陸從機mysqld服務
                $ mysql -uroot -p

                修改從機資料庫對主機資料庫的連線引數

                這裡的master_log_file和master_log_pos是主機中File和position的值

                Mysql>$ change master to master_host='192.168.1.112',master_user='root',master_password='root',

                master_port=3316,master_log_file='mysql-bin.000005',master_log_pos=347;

                若執行上面命令時報出如下錯誤

                

                關閉正在執行的slave執行緒
                Mysql>$ stop slave;
                再次執行上面步驟裡面的mysql命令
                啟動slave執行緒
                Mysql>$ start slave;
                檢視是否已經主從資料庫達成同步
                Mysql>show slave status\G  (此命令不加分號)
                Slave IO Running : yes
                Slave SQL Running : yes

                這兩個結果代表主從資料庫已經同步