1、最近一直在學習mysql的東西,恰好看到mysql如何搭建主從數據庫,蒐集了不少資料後大體瞭解了mysql主從復置的原理。如下是個人理解:mysql
舉例master爲主數據庫,slave爲從數據庫。sql
2、如今咱們開始配置主從數據庫:數據庫
這裏我準備了兩臺服務器,系統均爲centos7,服務器的系統能夠有差異;數據庫的話建議你們使用統一版本的。這裏個人服務器ip分別是192.168.0.109(master)、192.168.0.133(slave).centos
登陸到master的數據庫,在master的數據庫中創建一個備份賬戶:每一個slave使用標準的MySQL用戶名和密碼鏈接master。進行復制操做的用戶會授予REPLICATION SLAVE權限。用戶名的密碼都會存儲在文本文件master.info中服務器
命令以下:學習
mysql > GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.133' IDENTIFIED BY '123456';//創建root帳戶,密碼是123456,只容許該帳戶在192.168.0.133這個ip登陸(slave的ip),授予REPLICATION SLAVE權限
mysql > flush privileges;//使權限當即生效
配置master vi /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容 server-id=1 #設置服務器id,爲1表示主服務器。 log_bin=mysql-bin #啓動MySQ二進制日誌系統。 binlog-do-db=abc #須要同步的數據庫名,若是有多個數據庫,可重複此參數,每一個數據庫一行 binlog-ignore-db = mysql,information_schema #忽略寫入binlog的庫 重啓master數據庫 systemctl restart mariadb //我這裏安裝的mysql服務端是mariadb-server
登陸master數據庫,查看master狀態
show master status;
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000001 | 2722 | | mysql,information_schema |
+------------------+----------+--------------+--------------------------+centos7
配置slave vi /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容 server-id=2 #設置服務器id,爲2表示從服務器,這個server-id不作規定,只要主從不一致就好 log_bin=mysql-bin #啓動MySQL二進制日誌系統,若是該從服務器還有從服務器的話,須要開啓,不然不須要 binlog-do-db=abc #須要同步的數據庫名,若是有多個數據庫,可重複此參數,每一個數據庫一行 binlog-ignore-db = mysql,information_schema #忽略寫入binlog的庫,若是該從服務器還有從服務器的話,須要開啓,不然不須要
重啓slave數據庫
systemctl restart mariadb //我這裏安裝的mysql服務端是mariadb-server
登陸從數據庫,
change master to master_host='192.168.0.133',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=2722;//mysql-bin.000001,2722爲以前master查到的狀態值。
start slave;//開啓從數據庫
show slave status; //查看從數據庫的狀態
create database abc;
發現從數據庫中也會出現數據庫abc,說明咱們的主從數據庫搭建成功啦~spa