mysql讀寫分離實戰二-windows 上mysql主從資料庫搭建及問題總結
根據前篇web專案的搭建後,需要搭建主從資料庫,這裡在windows伺服器上搭建了主從結構的mysql,這裡在記錄下在本機模擬搭建過程
在windows上安裝和linux還是有些不同,不注意就會耽誤不少時間
一 下載安裝包和安裝
https://dev.mysql.com/downloads/file/?id=469273 下載的安裝包是Archive
需要手工安裝且建立服務和初始化data目錄,具體可以在網上搜尋有很多具體安裝方法。
二 建立從節點
1把主伺服器的安裝目錄C:\Program Files\MySQL\MySQL Server 5.7所有檔案都copy到另一個目錄D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7。
2修改複製過來的my.ini檔案引數
包括埠和路徑
port = 3307
basedir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7"
datadir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\data"
3建立mysql從伺服器服務
mysqld install MySQLM --defaults-file="D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini"
4修改對應登錄檔裡服務啟動項的內容
登錄檔HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath裡使用的路徑改成
"D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\bin\mysqld" --defaults-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini MySQLS
mysqld_multi.pl --defaults-extra-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini start 3307
以便啟動mysql時可以找到對應my.ini檔案啟動
三 主節點配置
1修改主節點和從節點上my.ini
[mysqld]
server-id = 1
binlog-do-db=test #要同步的資料庫
#binlog-ignore-db=mysql #不同步的資料庫,如果指定了binlog-do-db這裡應該可以不用指定的
log-bin=mysql-bin #要生成的二進位制日記檔名稱
修改從配置檔案:
[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db=test
2上建立使用者並授權
create user 'repla'@'127.0.0.1' identified by 'test';
GRANT REPLICATION SLAVE ON *.* TO 'repla'@'127.0.0.1';
3建立test資料庫
4 物理備份test目錄到從庫
把datadir指定的目錄的data目錄copy到從目錄
5 show master status
檢視file和position欄位對應的引數;
+------------------+----------+--------------+------------------+--------------
----+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid
Set |
+------------------+----------+--------------+------------------+--------------
----+
| mysql-bin.000006 | 1847 | test | |
|
+------------------+----------+--------------+------------------+--------------
四從節點配置
1啟動從節點mysql服務
mysql -uroot -P3307 -p123456 如果埠不同,必須制定埠,才能在一臺機器上同時啟動多例項
2 接收主節點傳送日誌
change master to master_host='127.0.0.1',master_port=3306,master_user='repla',master_password='test',master_log_file='mysql-bin.000006',master_log_pos=1847;
3啟動從資料庫複製功能
start slave
最後在主庫插入資料後,從庫就能看到主庫的資料了。
問題總結
1這裡的my.ini檔案在登錄檔裡有指定,無論是否使用命令指示使用自己命令的ini,系統都會根據登錄檔裡的my.ini檔案位置去讀取並啟動db。
比如用命令C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql --defaults-file="D:\anzhuang\MySQL\my.ini" -uroot -p
想使用自己定義的my.ini.但登錄檔HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath裡使用的路徑不是
這個路徑時,還會按照登錄檔的路徑讀取檔案。
如果在windows上安裝,要正確識別my.ini位置,具體可根據服務選擇或登錄檔資訊判斷my.ini位置
2 備份時可採用物理備份和邏輯備份,如果是物理備份注意把主庫的data目錄下的全部檔案複製到slave
這個data目錄一定是datadir引數中指定的目錄,這點可能會採用軟體安裝目錄下的data目錄而不是資料目錄
3 採用物理備份時很可能把auto.cnf檔案也複製到slave,造成主備之間的UUID不一致,這裡的解決辦法是在slave
重新命名auto.cnf,然後重啟備庫,重新生成新的UUID
可以參考網址http://www.linuxidc.com/Linux/2015-02/113564.htm
4 在slave上需要驗證主從是否開始傳送日誌方法
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: repla
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 1684
Relay_Log_File: SDSC-WIN7-ZHANGLU-relay-bin.000002
Relay_Log_Pos: 1595
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
......
Slave_IO_Running: Yes Slave_SQL_Running: Yes都是Yes 就對了。
可能出現問題是要多次stop slave後多次執行change master to命令。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750077/viewspace-2141702/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- 搭建MySQL主從實現Django讀寫分離MySqlDjango
- MYSQL實戰-MHA搭建及問題總結MySql
- MySQL主從複製架構搭建及讀寫分離測試MySql架構
- 配置\清除 MySQL 主從 讀寫分離MySql
- MySQL主從複製讀寫分離MySql
- MySQL 讀寫分離介紹及搭建MySql
- MySQL讀寫分離及主從同步延時問題解決思路深入剖析-綜合元件環境實戰MySql主從同步元件
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- MySQL主從複製與讀寫分離MySql
- 資料庫讀寫分離,主從同步實現方法資料庫主從同步
- MySQL 高可用架構:主從備份及讀寫分離MySql架構
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- MySQL怎麼實現主從同步和Django實現MySQL讀寫分離MySql主從同步Django
- Mysql-主從複製與讀寫分離MySql
- mycat結合MySQL的雙主實現讀寫分離MySql
- Spring+Hibernate框架下MySql讀寫分離,主從資料庫配置 (轉)Spring框架MySql資料庫
- mysql讀寫分離實戰準備一MySql
- MySQL主從同步讀寫分離的叢集配置MySql主從同步
- MySQL主從分離實現MySql
- (7)資料庫讀寫分離,主從同步實現方法(資料庫設定)資料庫主從同步
- 網站搭建資料庫篇-Linux系統MySQL配置主從分離網站資料庫LinuxMySql
- springboot多資料來源配合docker部署mysql主從實現讀寫分離Spring BootDockerMySql
- MySQL運維15-一主一從讀寫分離MySql運維
- MySQL運維16-雙主雙從讀寫分離MySql運維
- 提高效能,MySQL 讀寫分離環境搭建(二)MySql
- MySQL 中讀寫分離資料延遲MySql
- ProxySQL實現MySQL讀寫分離MySql
- Amoeba 實現 MySQL 讀寫分離MySql
- mysql proxy 安裝及配置實現讀寫分離MySql
- 【Mysql】mysql-proxy讀寫分離MySql
- springboot+mybatis+druid實現mysql主從讀寫分離(五)Spring BootMyBatisUIMySql
- 高可用Mysql架構_Mysql主從複製、Mysql雙主熱備、Mysql雙主雙從、Mysql讀寫分離(Mycat中介軟體)、Mysql分庫分表架構(Mycat中介軟體)的演變MySql架構
- MySQL Amoeba讀寫分離MySql
- Amoeba for mysql讀寫分離MySql
- MySQL讀寫分離AtlasMySql
- 直播賣貨系統,如何實現mysql資料庫的讀寫分離MySql資料庫
- 資料庫讀寫分離資料庫