日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

linux mysql主主复制_MySQL主从复制与主主复制

發(fā)布時(shí)間:2025/4/5 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux mysql主主复制_MySQL主从复制与主主复制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、簡(jiǎn)介

MySQL作為世界上使用最為廣泛的數(shù)據(jù)庫(kù)之一,免費(fèi)是其原因之一。但不可忽略的是它本身的功能的確很強(qiáng)大。隨著技術(shù)的發(fā)展,在實(shí)際的生產(chǎn)環(huán)境中,由單臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器不能滿足實(shí)際的需求。此時(shí)數(shù)據(jù)庫(kù)集群就很好的解決了這個(gè)問(wèn)題了。采用MySQL分布式集群,能夠搭建一個(gè)高并發(fā)、負(fù)載均衡的集群服務(wù)器(這篇文章暫時(shí)不涉及)。在此之前我們必須要保證每臺(tái)MySQL服務(wù)器里的數(shù)據(jù)同步。數(shù)據(jù)同步我們可以通過(guò)MySQL內(nèi)部配置就可以輕松完成,主要有主從復(fù)制和主主復(fù)制。

2、環(huán)境說(shuō)明

兩臺(tái)Linux虛擬主機(jī)

Linux版本CentOS 6.6、MySQL 5.5

ip:192.168.95.11、192.168.95.12

3、主從復(fù)制

3.1、MySQL

已經(jīng)安裝好,并且沒有任何數(shù)據(jù)

3.2、配置文件

一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件為mysql.ini)

log-bin=mysql-bin 開啟二進(jìn)制日志

注意:二進(jìn)制日志必須開啟,因?yàn)閿?shù)據(jù)的同步實(shí)質(zhì)上就是其他的MySQL數(shù)據(jù)庫(kù)服務(wù)器將這個(gè)數(shù)據(jù)變更的二進(jìn)制日志在本機(jī)上再執(zhí)行一遍。

192.168.95.11? 為主數(shù)據(jù)庫(kù)服務(wù)器

192.168.95.12? 為從數(shù)據(jù)庫(kù)服務(wù)器

3.3、開始構(gòu)建主從復(fù)制

第一步:

在192.168.95.11中創(chuàng)建一個(gè)192.168.95.12主機(jī)中可以登錄的MySQL用戶

用戶:mysql12

密碼:mysql12

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql12’@’192.168.95.12’ IDENTIFIED BY ‘mysql12’;

mysql>FLUSH PRIVILEGES;

第二步:

查看192.168.95.11MySQL服務(wù)器二進(jìn)制文件名與位置

mysql>SHOW MASTER STATUS;

第三步:

告知二進(jìn)制文件名與位置

在192.168.95.12中執(zhí)行:

mysql>CHANGE MASTER TO

>MASTER_HOST=’192.168.95.11’,

>MASTER_USER=’mysql12’,

>MASTER_PASSWORD=’mysql12’,

>MASTER_LOG_FILE=’mysql-bin.000048’,

>MASTER_LOG_POS=432;

完成主從復(fù)制配置

3.4、測(cè)試主從復(fù)制

在192.168.95.12中

mysql>SLAVE START;? #開啟復(fù)制

mysql>SHOW SLAVE STATUS\G? #查看主從復(fù)制是否配置成功

當(dāng)看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態(tài)正常

實(shí)際測(cè)試:

--登陸192.168.95.11主MySQL

mysql>SHOW DATABASES;

--登陸192.168.95.12從MySQL

mysql>SHOW DATABASES;

-----------------------------------------------------

192.168.95.11主MySQL操作:

mysql>create database aa;

mysql>use aa;

mysql>create table tab1(id int auto_increment,name varchar(10),primary key(id));

mysql>show databases;

mysql>show tables;

192.168.95.12從MySQL操作:

mysql>show databases;

mysql>show tables;

由上面兩個(gè)結(jié)果圖可得知,兩主機(jī)達(dá)到了數(shù)據(jù)同步。主從復(fù)制的配置就是如此的簡(jiǎn)單。

4、MySql主主復(fù)制

4.1、實(shí)現(xiàn)原理

主主復(fù)制即在兩臺(tái)MySQL主機(jī)內(nèi)都可以變更數(shù)據(jù),而且另外一臺(tái)主機(jī)也會(huì)做出相應(yīng)的變更。聰明的你也許已經(jīng)想到該怎么實(shí)現(xiàn)了。對(duì),就是將兩個(gè)主從復(fù)制有機(jī)合并起來(lái)就好了。只不過(guò)在配置的時(shí)候我們需要注意一些問(wèn)題,例如,主鍵重復(fù),server-id不能重復(fù)等等。

4.2、配置文件

--192.168.95.11

server-id=11? #任意自然數(shù)n,只要保證兩臺(tái)MySQL主機(jī)不重復(fù)就可以了。

log-bin=mysql-bin? #開啟二進(jìn)制日志

auto_increment_increment=2? #步進(jìn)值auto_imcrement。一般有n臺(tái)主MySQL就填n

auto_increment_offset=1? #起始值。一般填第n臺(tái)主MySQL。此時(shí)為第一臺(tái)主MySQL

binlog-ignore=mysql? #忽略mysql庫(kù)【我一般都不寫】

binlog-ignore=information_schema? #忽略information_schema庫(kù)【我一般都不寫】

replicate-do-db=aa? #要同步的數(shù)據(jù)庫(kù),默認(rèn)所有庫(kù)

--192.168.95.12

server-id=12

log-bin=mysql-bin

auto_increment_increment=2

auto_increment_offset=2

replicate-do-db=aa

配置好后重啟MySQL

4.3、開始構(gòu)建主主復(fù)制

因?yàn)橹髦鲝?fù)制是兩個(gè)主從復(fù)制組合一起,所以我就接著上面主從復(fù)制接著配置。

第一步:

在192.168.95.12中創(chuàng)建一個(gè)192.168.95.11主機(jī)中可以登錄的MySQL用戶

用戶:mysql11

密碼:mysql11

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql11’@’192.168.95.12’ IDENTIFIED BY ‘mysql11’;

mysql>FLUSH PRIVILEGES;

第二步:

在192.168.95.12查看二進(jìn)制日志名和位置

mysql>show master status;

第三步:

告知二進(jìn)制文件名與位置

在192.168.95.11中執(zhí)行:

mysql>CHANGE MASTER TO

MASTER_HOST=’192.168.95.12’,

MASTER_USER=’mysql11’,

MASTER_PASSWORD=’mysql11’,

MASTER_LOG_FILE=’mysql-bin.000084’,

MASTER_LOG_POS=107;

完成主主復(fù)制配置

4.4、測(cè)試主主復(fù)制

分別開啟slave start;

mysql>SHOW SLAVE STATUS\G? #查看主從復(fù)制是否配置成功

192.168.95.11

192.168.95.12

當(dāng)看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態(tài)正常

測(cè)試:

--192.168.95.11

mysql>use aa;

mysql>select*from tab1;

tab1無(wú)數(shù)據(jù)

--192.168.95.12

mysql>use aa;

mysql>select*from tab1;

tab1無(wú)數(shù)據(jù)

--192.168.95.11插入數(shù)據(jù)

mysql>insert into tab1 (name) value(‘11’),(‘11’),(‘11’);

--192.168.95.12插入數(shù)據(jù)

mysql>insert into tab1 (name) value(‘22’),(‘22’),(‘22’);

查看數(shù)據(jù):

兩個(gè)主機(jī)數(shù)據(jù)結(jié)果一樣!

主主復(fù)制配置成功!

5、注意事項(xiàng)

1、主主復(fù)制配置文件中auto_increment_increment和auto_increment_offset只能保證主鍵不重復(fù),卻不能保證主鍵有序。

2、當(dāng)配置完成Slave_IO_Running、Slave_SQL_Running不全為YES時(shí),show slave status\G信息中有錯(cuò)誤提示,可根據(jù)錯(cuò)誤提示進(jìn)行更正。

3、Slave_IO_Running、Slave_SQL_Running不全為YES時(shí),大多數(shù)問(wèn)題都是數(shù)據(jù)不統(tǒng)一導(dǎo)致。

常見出錯(cuò)點(diǎn):

1、兩臺(tái)數(shù)據(jù)庫(kù)都存在db數(shù)據(jù)庫(kù),而第一臺(tái)MySQL db中有tab1,第二臺(tái)MySQL db中沒有tab1,那肯定不能成功。

2、已經(jīng)獲取了數(shù)據(jù)的二進(jìn)制日志名和位置,又進(jìn)行了數(shù)據(jù)操作,導(dǎo)致POS發(fā)生變更。在配置CHANGE MASTER時(shí)還是用到之前的POS。

3、stop slave后,數(shù)據(jù)變更,再start slave。出錯(cuò)。

終極更正法:重新執(zhí)行一遍CHANGE MASTER就好了。

總結(jié)

以上是生活随笔為你收集整理的linux mysql主主复制_MySQL主从复制与主主复制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。