1. 程式人生 > >Mysql主從架構

Mysql主從架構

# Mysql主從架構 ## 1. 克隆虛擬機器 > **克隆的虛擬機器的網路適配,使得虛擬機器可以進入區域網** > > * **vi /etc/sysconfig/network-scripts/ifcfg-eth0** > * **刪除 HWADDR所在行** > **UUID所在行** > * **將/etc/udev/rules.d/目錄中的** > **70-persistent-net.rules檔案刪除** > * **重啟虛擬機器:reboot** ## 2. 兩臺主機,各自安裝mysql > **參考之前的mysql安裝過程即可.** > > **一臺做主機,一臺做從機。** ## 3. 搭建資料庫 > **主機和從機上的庫名一致** ## 4. 配置"主機" ### 4.1 配置 > **找到 `/etc/my.cnf`** > **在[mysqld]下配置:** ```properties server-id=9 // id log-bin=zhj-bin // 二進位制日誌檔案的名稱,有此配置即為“主機” binlog-do-db=db9 // 要記錄二進位制日誌的資料庫,可以有多個,如下 binlog-do-db=db10 binlog-do-db=db11 binlog_format=MIXED // 相容 日誌和read-commit expire_logs_days=10 // 日誌超時時間 ``` ### 4.2 重啟主機 > **重啟主機:service mysqld restart** ### 4.3 檢視主機狀態 > **檢視主機狀態:** ```mysql mysql>show master status; *記錄下file欄位值,和position欄位值,要告知給從機 ``` ## 5. 配置"從機" ### 5.1 配置 > **找到 `/etc/my.cnf`** > **在[mysqld]下配置:** ```properties server-id=10 replicate-do-db=db9 #要複製的哪個庫 master-connect-retry=60 #60s後重連主機 ``` ### 5.2 同步資料 > **同步主從資料** > > `如果主機已經有資料,則需要將資料同步到從機` ```mysql #主機匯出資料庫db9中的資料: [root@zhj ~]# mysqldump -u root -h 192.168.1.66 -p db9 > /root/hh.sql (之後輸入密碼即可) ``` ```mysql #從機登入mysql,並選擇資料庫db9,然後執行如下: mysql> use db9; mysql> source /root/hh.sql; ``` ### 5.3 重啟從機 > **重啟從機** ```sh [root@zhj ~]# service mysqld restart ``` ### 5.4 主從同步 ```mysql [root@zhj ~]# mysql -u root -p111111 # 登入mysql mysql> slave stop; #停止slave同步程序 mysql> change master to master_host='192.168.1.66',master_user='root' ,master_password='123',master_log_file='zhj-bin.000001',master_log_pos=106; mysql> slave start; #開啟slave同步程序 ``` ### 5.5 檢視從機狀態 ```mysql mysql> SHOW SLAVE STATUS\G #檢視slave同步資訊(G後不要加分號) ``` > **注意檢視:** > `Slave_IO_Running: Yes` > `Slave_SQL_Running: Yes` > **以上這兩個引數的值為Yes,即說明配置成功!** ##6. 細節 > **mysql的bin-log和read-commit有衝突** > > **需要在主機的my.cnf的[mysqld]中配置:** > > `binlog_format=mixed //