本地windows安裝兩個(gè)mysql服務(wù)器,配置主從同步
大型網(wǎng)站為了緩解大量的并發(fā)訪問(wèn),除了在網(wǎng)站實(shí)現(xiàn)分布式負(fù)載均衡,還會(huì)搭建服務(wù)器mysql集群技術(shù),來(lái)分擔(dān)主數(shù)據(jù)庫(kù)的壓力。在本地電腦能實(shí)現(xiàn)這樣的技術(shù)嗎,本地windows安裝兩個(gè)mysql服務(wù)器,配置主從同步也是可以實(shí)現(xiàn)的,快來(lái)跟著教程測(cè)試一下吧。
一、配置兩個(gè)mysql服務(wù)器
1.首先安裝mysql
安裝mysql(這里安裝的是5.5),正常安裝即可。
2.復(fù)制安裝后的目錄
復(fù)制安裝后的目錄d:/mysql/MySQL Server 5.5(路徑看個(gè)人情況) 到d:/mysql/mysql2
修改mysql2目錄下的my.ini 文件
[client]
port=3307(安裝數(shù)據(jù)庫(kù)的端口是3306 ,此處修改為3307)
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3307(安裝數(shù)據(jù)庫(kù)的端口是3306 ,此處修改為3307)
#Path to installation directory. All paths are usually resolved relative to this. basedir="D:/mysql/MySQL Server 5.5/" #Path to the database root datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
修改為
#Path to installation directory. All paths are usually resolved relative to this. basedir="D:/mysql/mysql_2/" #復(fù)制后的目錄 #Path to the database root datadir="C:/ProgramData/MySQL/mysql_2/Data/" #此處注意,在C:/ProgramData/MySQL下新建mysql_2 并把MySQL Server 5.5/下的Data文件全粘貼過(guò)來(lái)
3.安裝服務(wù)
命令符進(jìn)入:D:\mysql\mysql_2\bin>
mysqld --install mysql2 --defaults-file='d:\mysql\mysql_2\my.ini'
運(yùn)行成功,則會(huì)顯示Service Successfully installed.
這時(shí)候打開(kāi)任務(wù)管理器--服務(wù),可以看到一個(gè)mysql2服務(wù)。
4. 開(kāi)啟服務(wù)
命令提示符: D:\mysql\mysql_2\bin>net start mysql2 或者在服務(wù)中手動(dòng)開(kāi)啟
如果報(bào)錯(cuò)1067 可以把C:/ProgramData/MySQL/mysql_2/Data/ 中ib_logfile0、ib_logfile1和ibdata1 刪掉,重啟。
5. 停止服務(wù)
命令提示符: D:\mysql\mysql_2\bin>net stop mysql2 或者在服務(wù)中手動(dòng)停止;
二、設(shè)置主從配置:
主服務(wù)器(master): IP為127.0.0.1,端口為3306
從服務(wù)器(slave): IP為127.0.0.1,端口為3307
將兩個(gè)服務(wù)都停掉(這里將主庫(kù)叫做master , 從庫(kù)叫做slave):
主服務(wù)器配置:
修改主服務(wù)器的數(shù)據(jù)庫(kù)配置文件(D:/mysql/MySQL Server 5.5/my.ini),
在 [mysqld] 標(biāo)簽的最下面,添加如下代碼:
#需要備份的數(shù)據(jù)庫(kù)
binlog-do-db=test
#不需要備份的數(shù)據(jù)庫(kù)
binlog-ignore-db=mysql
#開(kāi)啟二進(jìn)制日志
log-bin=mysql-bin
#服務(wù)器id
server-id=1
保存退出,重啟MySQL主服務(wù)器。
binlog-do-db用于指定需要同步的數(shù)據(jù)庫(kù),binlog-ignore-db指定不需要同步的數(shù)據(jù)庫(kù),如果這兩個(gè)參數(shù)都不設(shè)置,則從服務(wù)器會(huì)復(fù)制主服務(wù)器的所有數(shù)據(jù)庫(kù)。
一般不用root賬號(hào)作同步賬號(hào),為此,我們需要在主服務(wù)器上創(chuàng)建一個(gè)新的用戶(如 user01,密碼為123456)。
這里我們用命令行的方式創(chuàng)建,方法如下:
打開(kāi)cmd,切換至 D:\mysql\mysql_2\bin,用 root 賬戶連接MySQL主服務(wù)器:
mysql -uroot -p -P3306
創(chuàng)建新用戶:
create user 'user01'@'127.0.0.1' identified by '123456';
(@后面的ip地址為允許連接的客戶端的ip地址。)
然后,給新用戶配置主從復(fù)制的權(quán)限:
grant replication slave on *.* to 'user01'@'127.0.0.1' identified by '123456';
mysql> flush privileges;//刷新權(quán)限
(@后面的ip地址為允許連接的客戶端的ip地址,如果改為 '%',就表示客戶端沒(méi)有ip地址的限制)
查看主服務(wù)器的 master 狀態(tài):
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 498 | test | mysql | | +------------------+----------+--------------+------------------+-------------------+
從服務(wù)器配置:
修改從服務(wù)器的數(shù)據(jù)庫(kù)配置文件(d:\mysql\mysql_2\my.ini),在 [mysqld] 標(biāo)簽的最下面,添加如下代碼:
#端口
port = 3307
#服務(wù)器id
server_id = 2
#開(kāi)啟二進(jìn)制日志(從服務(wù)器不是必須要開(kāi)啟二進(jìn)制日志)
log-bin=mysql-bin
保存退出,重啟MySQL服務(wù)。
連接MySQL從服務(wù)器:
mysql -uroot -p -P3307
配置復(fù)制的參數(shù):
change master to master_host='127.0.0.1',master_user='user01',master_password='123456',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=498;
參數(shù)詳解:
master_host: 主服務(wù)器的IP
master_user: 主服務(wù)器上新創(chuàng)建的用戶名
master_password: 用戶的密碼
master_port: 主服務(wù)器的端口,如果未曾修改,默認(rèn)即可。
master_log_file: 主服務(wù)器二進(jìn)制日志文件的名稱,填寫(xiě)查看主服務(wù)器的master狀態(tài)時(shí)顯示的File的值
master_log_pos: 日志的位置,填寫(xiě)查看主服務(wù)器的master狀態(tài)時(shí)顯示的Position的值
啟動(dòng)從服務(wù)器的slave復(fù)制功能:
start slave;
查看從服務(wù)器的slave狀態(tài):
mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 127.0.0.1 Master_User: user01 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000009 Read_Master_Log_Pos: 120 Relay_Log_File: hp-PC-relay-bin.000004 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000009 Slave_IO_Running: Yes Slave_SQL_Running: Yes
如果 Slave_IO_Running 和 Slave_SQL_Running 的值都為 Yes,則說(shuō)明主從復(fù)制的所有配置已成功,即從服務(wù)器已經(jīng)可以自動(dòng)與主服務(wù)器的數(shù)據(jù)庫(kù)數(shù)據(jù)實(shí)現(xiàn)同步了。
此后,只要主服務(wù)器的數(shù)據(jù)有更新(比如:在 test數(shù)據(jù)庫(kù)中新建了一張表或者表中的數(shù)據(jù)發(fā)生了變化),從服務(wù)器都會(huì)自動(dòng)與主服務(wù)器保持一致。但如果有人刻意改變了從服務(wù)器的數(shù)據(jù),主服務(wù)器中的數(shù)據(jù)并不會(huì)同步更新,除非我們把這兩個(gè)MySQL服務(wù)器設(shè)置為互為主從。
到此這篇關(guān)于本地windows安裝兩個(gè)mysql服務(wù)器,配置主從同步的文章就介紹到這了,更多相關(guān)本地mysql配置主從同步內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問(wèn)題及解決辦法
項(xiàng)目中查詢用到了concat()拼接函數(shù),本文主要介紹了MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問(wèn)題及解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07發(fā)現(xiàn)mysql一個(gè)用法,比較有用
mysql下用select實(shí)現(xiàn)列運(yùn)算2008-02-02mysql實(shí)現(xiàn)按照某個(gè)時(shí)間段分組統(tǒng)計(jì)
這篇文章主要介紹了mysql實(shí)現(xiàn)按照某個(gè)時(shí)間段分組統(tǒng)計(jì)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10mysql數(shù)據(jù)遷移到Oracle的正確方法
這篇文章主要為大家詳細(xì)介紹了mysql數(shù)據(jù)遷移到Oracle的正確方法,文中步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02