開(kāi)始安裝:
創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、成都小程序開(kāi)發(fā)、軟件開(kāi)發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!
注意提示需要安裝net-tools包:
按順序安裝:
查詢?nèi)罩纠锩娴某跏蓟艽a:
修改密碼:
1,設(shè)置utf-8字符格式,兩個(gè)主機(jī)配置相同
授權(quán)
主機(jī)(master)添加配置文件信息:
主機(jī)添加配置信息:
從機(jī)添加的配置信息:
master服務(wù)器查看MySQL狀態(tài):
運(yùn)行slave服務(wù)器MySQL(從服務(wù)器):執(zhí)行接入master服務(wù)器MySQL服務(wù)語(yǔ)句:
運(yùn)行:
主庫(kù)上操作
其中file是binlog的文件名稱,position是當(dāng)前的偏移量。在設(shè)置從庫(kù)需要同步的內(nèi)容的時(shí)候需要設(shè)置這兩個(gè)參數(shù)。
一.?準(zhǔn)備服務(wù)器
準(zhǔn)備兩臺(tái)主機(jī),分別安裝好Mysql (要相同版本),確定版本無(wú)誤,確保mysql服務(wù)正常啟動(dòng),確保兩臺(tái)主機(jī)處于同一個(gè)局域網(wǎng)中,確定好哪臺(tái)做為主、備機(jī)器,假設(shè)A為主機(jī),B為備機(jī),假設(shè):
A主機(jī)IP地址為:172.16.16.90 端口3306
B主機(jī)IP地址為: 172.16.99.98 端口3306
二.?Mysql建立主-從服務(wù)器熱備配置步驟
1.?創(chuàng)建同步用戶
進(jìn)入MySql操作界面,在主服務(wù)器上為從服務(wù)器建立一個(gè)連接帳戶,該帳戶必須授予REPLICATION SLAVE權(quán)限。
操作指令如下:
1)?grant select,replication slave on *.* to 'replicate'@'172.16.99.98' identified by '1234567';
2)?flush privileges;
2.?修改Mysql配置
如果上面的準(zhǔn)備工作做好,就可以進(jìn)行對(duì)Mysql配置文件進(jìn)行修改了,首先找到主服務(wù)器Mysql安裝文件所有在目錄,找到my.ini文件用記事本打開(kāi)。在[mysqld]下增加如下內(nèi)容:
server-id?=?1
log-bin=mysql-bin
binlog-do-db?=test? ?#需要備份的數(shù)據(jù)庫(kù),多個(gè)寫(xiě)多行
binlog-ignore-db?=?mysql??????#不需要備份的數(shù)據(jù)庫(kù),多個(gè)寫(xiě)多行
3.?重啟mysql服務(wù)
修改完配置文件保存后,重啟一下mysql服務(wù)。
4.?查看主服務(wù)器狀態(tài)
進(jìn)入A服務(wù)器Mysql 客戶端輸入命令
1)Show master STATUS;
2)返回結(jié)果如下:
注意看里面的參數(shù),特別前面兩個(gè)File和Position,在從服務(wù)器(Slave)配置主從關(guān)系會(huì)有用到的。
5.?從服務(wù)器Slave配置修改配置文件
因?yàn)檫@里面是以主-從方式實(shí)現(xiàn)mysql雙機(jī)熱備的,所以在從服務(wù)器就不用在建立同步帳戶了,直接打開(kāi)配置文件my.ini進(jìn)行修改即可,道理還是同修改主服務(wù)器上的一樣,只不過(guò)需要修改的參數(shù)不一樣。
如下:
[mysqld]
server-id?=?2
log-bin=mysql-bin
replicate-do-db?=?test
replicate-ignore-db?=mysql
6.?重啟mysql服務(wù)
修改完配置文件保存后,重啟一下mysql服務(wù)。
7.?配置從服務(wù)器
先停止slave服務(wù)線程,這個(gè)是很重要的,如果不這樣做會(huì)造成下面操作不成功,再用change mster 語(yǔ)句指定同步位置,操作如下:
1)?stop?slave;
2)?change master to master_host='172.16.16.90',
master_user='replicate',master_password='1234567',master_port=3306,
master_log_file='mysql-bin.000001',master_log_pos=98;
3)?start slave
4) show?slave?status
查看下面兩項(xiàng)值均為Yes,即表示設(shè)置從服務(wù)器成功。
Slave_IO_Running:?Yes
Slave_SQL_Running:?Yes
為了保障數(shù)據(jù)的安全與穩(wěn)定性,我們常用數(shù)據(jù)庫(kù)的主從復(fù)制與主主復(fù)制來(lái)實(shí)現(xiàn)。主從復(fù)制為從機(jī)實(shí)時(shí)拷貝一份主機(jī)的數(shù)據(jù),當(dāng)主機(jī)有數(shù)據(jù)變化時(shí),從機(jī)的數(shù)據(jù)會(huì)跟著變,當(dāng)從機(jī)數(shù)據(jù)有變化時(shí),主機(jī)數(shù)據(jù)不變;同樣地,主主復(fù)制就是,多個(gè)主機(jī)之間,只要有一個(gè)主機(jī)的數(shù)據(jù)變化了,其它主機(jī)數(shù)據(jù)也會(huì)跟著變化。
添加以下內(nèi)容
如果你是使用我之前那種方式啟動(dòng)的MySQL,那么你只需要去你相關(guān)聯(lián)的宿主機(jī)的配置文件夾里面去建立一個(gè) my.cnf 然后寫(xiě)入上面的類容就好了。
比如:我的啟動(dòng)命令如下(不應(yīng)該換行的,這里為了方便查看,我給它分行了)
那么我只需要在 /docker/mysql_master/conf 這個(gè)目錄下創(chuàng)建 my.cnf 文件就好了。
這個(gè)命令是需要在容器里面執(zhí)行的
docker重啟mysql會(huì)關(guān)閉容器,我們需要重啟容器。
確保在主服務(wù)器上 skip_networking 選項(xiàng)處于 OFF 關(guān)閉狀態(tài), 這是默認(rèn)值。 如果是啟用的,則從站無(wú)法與主站通信,并且復(fù)制失敗。
我的命令如下
在從服務(wù)器配置連接到主服務(wù)器的相關(guān)信息 (在容器里面的mysql執(zhí)行)
上面代碼的xxxxx你需要換成你的IP,docker 查看容器 IP 的命令如下:
啟動(dòng)的那個(gè)從服務(wù)器的線程
測(cè)試的話,你可以在主服務(wù)器里面,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),發(fā)現(xiàn)從服務(wù)器里面也有了,就成功了。
如果你還想要一個(gè)從服務(wù)器,那么你只需要按照上面配置從服務(wù)器再配置一個(gè)就行了,新建的從服務(wù)器,會(huì)自動(dòng)保存主服務(wù)器之前的數(shù)據(jù)。(測(cè)試結(jié)果) 如果你上面的主從復(fù)制搞定了,那么這個(gè)主主復(fù)制就很簡(jiǎn)單了。我們把上面的從服務(wù)器也改成主服務(wù)器
1)、修改上面的從服務(wù)器的my.cnf文件,和主服務(wù)器的一樣(注意這個(gè)server-id不能一樣)然后重啟服務(wù)器 2)、在從服務(wù)器里面創(chuàng)建一個(gè)復(fù)制用戶創(chuàng)建命令一樣(這里修改一下用戶名可以改為 repl2) 3)、在之前的主服務(wù)器里面運(yùn)行下面這個(gè)代碼
上面主要是教你怎么搭建一個(gè)MySQL集群,但是這里面還有很多其它的問(wèn)題。也是我在學(xué)習(xí)過(guò)程中思考的問(wèn)題,可能有的小伙伴上來(lái)看到文章長(zhǎng)篇大論的看不下去,只想去實(shí)現(xiàn)這樣一直集群功能,所以我就把問(wèn)題寫(xiě)在下面了。
1)、MySQL的replication和pxc MySQL的集群方案有replication和pxc兩種,上面是基于replication實(shí)現(xiàn)的。
replication: 異步復(fù)制,速度快,無(wú)法保證數(shù)據(jù)的一致性。 pxc: 同步復(fù)制,速度慢,多個(gè)集群之間是事務(wù)提交的數(shù)據(jù)一致性強(qiáng)。
2)、MySQL的replication數(shù)據(jù)同步的原理 我們?cè)谂渲玫臅r(shí)候開(kāi)啟了它的二進(jìn)制日志,每次操作數(shù)據(jù)庫(kù)的時(shí)候都會(huì)更新到這個(gè)日志里面去。主從通過(guò)同步這個(gè)日志來(lái)保證數(shù)據(jù)的一致性。
3)、可否不同步全部的數(shù)據(jù) 可以配置,同步哪些數(shù)據(jù)庫(kù),甚至是哪些表。
4)、怎么關(guān)閉和開(kāi)始同步
5)、我就我的理解畫(huà)出了,主從、主從從、主主、復(fù)制的圖。
往期推薦:
利用Docker僅花1分鐘時(shí)間安裝好MySQL服務(wù)
Linux下MySQL 5.7的離線與在線安裝(圖文)
Linux下安裝MySQL8.0(收藏?。?/p>
1.在主數(shù)據(jù)庫(kù)服務(wù)器為從服務(wù)器添加一個(gè)擁有權(quán)限訪問(wèn)主庫(kù)的用戶:
GRANT REPLICATION SLAVE ON *.* TO ' test'@'%' IDENTIFIED BY 'test';
(%表示允許所有IP,可設(shè)置指定從服務(wù)器IP)
添加用戶后:
可在從服務(wù)器上用mysql -h127.0.0.1 -utest -ptest; 來(lái)測(cè)試是否有權(quán)限訪問(wèn)主數(shù)據(jù)庫(kù)
2.在主據(jù)庫(kù)配置文件加上:
#master config
server-id = 1
log-bin = mysql-bin
3.在從服務(wù)器數(shù)據(jù)庫(kù)配置文件:
server-id = 2
master-host = 10.0.0.199
master-user = test
master-password = test
replicate-do-db = test
master-port = 3306
log-bin = mysql-bin
如果你的一切配置順利
你在從服務(wù)器上輸入命令:show slave status\G
成功情況:
Slave_IO_Running:yes
Slave_SQL_Running:yes
在主服務(wù)器上輸入show master status
主從同步原理圖
mysql復(fù)制的模式
具體配置
master_log_file是第四步中File的值
master_log_pos是第四步中Postion的值
Slave_IO_Running等于yes代表已經(jīng)連接到主庫(kù)
Slave_SQL_Running等于yes 可執(zhí)行主庫(kù)binlog
這四個(gè)記錄了 IO或者SQL連接或者執(zhí)行出現(xiàn)的錯(cuò)誤
網(wǎng)站標(biāo)題:mysql主從配置怎么用 mysql主從從配置
URL鏈接:http://vcdvsql.cn/article2/hpjooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站收錄、定制開(kāi)發(fā)、、云服務(wù)器、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容