標籤:ignore verify 分配 從庫 說明 不能 bsp ids 作業系統
在我們實際的開發中,當系統業務到達一定的程度,可能資料庫會到達一定的瓶頸,但實際開發中最容易到達資料庫瓶頸的應該是資料庫的讀效能,一般的業務大多都是讀多寫少,我們可以通過提高讀的效能來提高資料庫的整體效能,我們可以通過搭建主從複製的資料庫叢集,把資料庫的讀寫進行分離,實現在主庫進行寫,在從庫進行讀,當讀的效能達到瓶頸時,可以增加從庫的數量來線性增加讀的效能,但是如果主的效能達到瓶頸,通過主從複製是無法提高主庫寫入的效能的。好了,下面我們開始搭建主從複製結果吧。
1、安裝mysql
安裝要求:
(1)你可以在多個作業系統上分別安裝mysql(需要多個電腦或者一個電腦上安裝多個虛擬機器)
(2)你也可以在一個作業系統上安裝mysql(使用不同的連接埠)
由於電腦效能的原因,我這裡使用第二種方式。
(1)解壓三次mysql到檔案夾,分別起名為master,slave1,slave2
(2)修改master中的my-small.ini設定檔的名稱為my.ini
port=3306(修改的是mysqld的連接埠,不是client的連接埠)
server-id=1
log-bin=mysql-bin 取消注釋(去掉#)
(3)修改slave1中的my-small.ini設定檔的名稱為my.ini
port=3307(修改的是mysqld的連接埠,不是client的連接埠)
server-id=2
log-bin=mysql-bin 取消注釋(去掉#)
(4)修改slave2中的my-small.ini設定檔的名稱為my.ini
port=3308(修改的是mysqld的連接埠,不是client的連接埠)
server-id=3
log-bin=mysqlbin 取消注釋(去掉#)
註:
server-id是mysql資料庫的唯一標識,不能一樣
主從複製需要使用到log-bin,所以需要配置
修改連接埠的目的是為了在一個作業系統上運行多個mysql
2、分別安裝並啟動三個服務
進入master的bin目錄執行 mysqld install master
net start master
進入slave1的bin目錄執行 mysqld install slave1
net start slave1
進入slave2的bin目錄執行 mysqld install slave2
net start slave2
3、串連到master伺服器進行主庫設定
(1)進入master的bin目錄執行mysql -P3306 -uroot -p
串連到master資料庫伺服器
(2)為要串連的從庫分配許可權
mysql> grant replication slave on *.* to ‘mysql‘@‘192.168.91.92‘ identified by ‘123‘; #分配許可權
mysql> flush privileges; #重新整理許可權,讓許可權生效
(3)查看主庫狀態
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 334 | | |
+------------------+----------+--------------+------------------+
註:一定要注意,從庫串連主庫時需要使用到File和Position
4、串連到slave1伺服器進行從庫設定
(1)進入slave1的bin目錄執行mysql -P3307 -uroot -p
串連到slave1資料庫伺服器
(2)讓從庫串連到主庫(使用在主庫中分配的帳號)
mysql> change master to
master_host=‘192.168.91.92‘,
master_user=‘mysql‘,
master_password=‘123‘,
master_log_file=‘mysql-bin.000001‘, #和查看主庫狀態中的檔案一致
master_log_pos=334; #和查看主庫狀態中的位置一致
(3)啟動從庫
mysql> start slave;
(4)顯示從庫狀態
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.91.92 #主庫的ip地址
Master_User: mysql #登入主庫的帳號
Master_Port: 3306 #主庫的連接埠號碼
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 334
Relay_Log_File: 6DWTCVDFBIEGWHC-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes #Yes代表的是與主庫串連正常
Slave_SQL_Running: Yes #Yes代表的是從庫的執行SQL的線程已經準備就緒
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 334
Relay_Log_Space: 419
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
5、串連到slave2伺服器進行從庫設定
先串連到slave2伺服器,其它設定和slave1完全一致,可以參考slave1
6、測試
你可以先在主庫中建立庫,建立表,添加資料然後在從庫中查看有沒有同步,如果同步了說明環境搭建沒有問題。
好了,mysql主從複製環境已經搭建好了,來總結一下主從複製的優缺點,其實在本文的開頭已經說過了。
優點:能夠線性提高資料庫的讀的效能
缺點:當寫的效能達到瓶頸時使用主從複製,不會對效能帶來提高
MySQL的主從複製(windows)