mysql主主复制汇总整理,一 、Mysql主主、主从复制主要思路

mysql主主复制汇总整理

mysql主主复制汇总整理,mysql主汇总整理

mysql主主复制汇总整理

壹 、Mysql主主、主从复制首要思路:

① 、mysql复制实质:

就是任何的MySQL数据库服务器将以此数据变动的二进制日志在本机上再进行三遍,由此尤其主要的一点是mysql数据库中必须求打开二进制日志

② 、Mysql主从复制:

就是A为主数据库,B为从数据库,B将A中多少变动的二进制日志在它数据库中重新履行五次;(B只会趁机A改变,A不会趁机B改变

叁 、Mysql主主复制:

就是A数据库、B数据库相互同步数据,A与B都将互动的数额变动的二进制日志在自个儿数据库中另行履行四次,就是八个主从复制的组成;(A与B相互跟随相互举办转移

二 、Mysql主主复制操作步骤:

比方A库、B库要落成主主复制:

壹 、在主库中创建从库登录的账号、密码,并对账号举行授权:

创设账号:

CREATE USER ‘myuser’@’localhost’ IDENTIFIED BY ‘mypassword’;

授权:

 图片 1

贰 、修改mysql配置文件:一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件为mysql.ini)

A库配置文件增添以下配置信息:(新闻见mysql_copy_update_info.txt文件)

#注意在mysql配置文件中填写一下信息的位置,必须为此位置,即[mysqld]标签下面
[mysqld]

#任意自然数n,只要保证两台MySQL主机不重复就可以了
server-id=1

#起始值。一般填第n台主MySQL。此时为第一台主MySQL
auto_increment_offset=1

#步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment=2

#开启二进制日志
log-bin=mysql-bin

log-error=/mysqldata/mysqld.log

pid-file=/mysqldata/mysqld.pid

#与此从库相对应的主库的ip地址
master-host=192.168.15.185

#在相对应的主库中,此库可登录的账号
master-user=backup

#在相对应的主库中,此库可登录的密码
master-password=123456


#在相对应的主库中登录的端口号
master-port=3306

#要同步的数据库,默认所有库,指定多个库添加新行就可以
replicate-do-db=phpcmsv9

#不要同步的数据库,指定多个库添加新行就可以
replicate-ignore-db=mysql

master-connect-retry=60

B库配置文件增添的计划音信与A库中扩充消息完全一致,除了server-id与auto_increment_offset不同外;

③ 、设置编码格式(否则汉语简单并发乱码):

充实的配置新闻如下圈出音讯,要是某些标签[]中在mysql配置文件中暗许没有的,本身手动添加(详情见character_encoding_info.txt文件)

[mysql]

default-character-set=utf8

[mysqld]

default-character-set = utf8
character_set_server = utf8

[mysqld_safe]

default-character-set = utf8

[mysql.server]

default-character-set = utf8

[client]

default-character-set = utf8

四 、重新起动mysql数据库:

Mysql命令:service mysqld restart;

五 、查六柱预测对应的主库的二进制文件名及其地方:

在主库中用mysql命令:show master status;

 图片 2

陆 、在本库中告诉相对应主库二进制文件名及其地点的音讯:

A为主库,B为从库时,在B库中履行mysql命令:(详细音讯请见文件change_master_to_info.txt文件)

change master to master_host='172.20.109.14',master_user='mysql913',master_password='123456',master_log_file='mysql-bin.000056',master_log_pos=151744220;

图片 3

B为主库,A为从库,在A库中实践同上命令,参数举办适度修改;

七 、分别运维各自的slave:

独家在各自库中实施mysql命令:slave start;

八 、查看slave运营后的情景:

独家在各自库中执行mysql命令:SHOW SLAVE STATUS\G;

最重如果观看:

(1)红圈的多个参数是还是不是都以YES,如果不是,那么就是出现了丰盛,查看第壹行的荒谬提醒,举行丰盛处理,对于广泛的百般处理见四中开展缓解;

(2)红线为复制的数据库,查看是不是是本人须求复制的数据库,假若不得法,那么久须要修改mysql的部署文件中的音信,重新开首执行一回;

 图片 4

⑨ 、落成主主复制配置,举办数据测试:

③ 、Mysql主从复制操作步骤:

与上述主主复制步骤类似,只是主主复制对四个库都进展操作,主从复制只需求对从库进行change
master
to操作,对主库只须求配置开启二进制、server-id即可,对从库配置消息同上;

四 、怎么着在现有主主上添加库:

壹 、在动用的mysql上先依照需求成立库,并创造必要的表添加数据;

二 、在另一台mysql上一样创制对应的库,并将对应库中的数据copy过来;

③ 、分别修改mysql的布局文件中的replicate-do-db新增添一行,值就是要新增加的库,然后再度开动mysql服务;

④ 、然后经过linux命令进入mysql,查看slave是还是不是正确运营,若是开行有非凡举行处理,确保不荒谬运行;

五 、新加上的库就到了主主复制链中,举行测试即可;

⑤ 、怎么样在现有主主上去掉某些库:

一 、分别修改mysql对应的配置文件,将须要去掉的库的replicate-do-db注释掉大概删掉;

贰 、重新起动mysql服务;

三 、进去mysql中,分别查看mysql的日记文件消息:change master status;

④ 、分别重新执命令行start slave until
MASTETiggo_LOG_FILE=”mysql-bin.000075″,
MASTER_LOG_POS=216,将从库中读取二进制日志音信地点切换来相应主库现有地方中去;

⑤ 、完毕对某些库的去掉效用;

陆 、Mysql主主和主从复制常见极度处理:

1、Slave_IO_State: Waiting to reconnect after a failed registration on
master异常:

斩草除根办法:

在对应主库上从新对相应账号执行授权命令

grant replication slave on *.* to “repl’@’%’ identified by
‘sangfordb’;

FLUSH PRIVILEGES;

然后重新stop slave 和start slave就足以

2、Slave_IO_State:connecting to master

杀鸡取卵办法:

案由是此账号无法连接主库,查看账号远程登录?Linux防火墙端口开放?

3、slave_sql_running:NO异常:

缓解格局:

跳过执行报错的sql就好了,在从库中实施mysql命令:

SET GLOBAL SQL_SLAVE_SKIP_COUNTE冠道 =
1(等号后为几看自个儿有几个错误了,不知情的就尝试,直到SHOW SLAVE
STATUS查看结果该越发化解掉截止)

四 、Slave运营健康,就是不一起数据:

案由:出现此情景的来头固然,从库中获取主库的二进制新闻的文书名和地点与主库中流行数据地点不平等;

斩草除根办法:查看主库的二进制文件名和音信:change master
status;然后在从库中实施:start slave until
MASTE奥迪Q5_LOG_FILE=”mysql-bin.000075″,
MASTER_LOG_POS=216;命令,将从库中获取主库二进制文件新闻更新到主库现有气象,如若是主主复制这就在两台mysql中分头执行即可;

柒 、Mysql主主和主从复克服务器分外为止后甩卖思路:

(1)mysql或slave出现万分管理员如何得知:

壹 、slave非常获知:编写2个shell脚本,用nagios监控slave的五个yes(Slave_IO及Slave_SQL进度),如发现唯有三个或零个yes,就标志主主或主从出标题了,发短信警报;

(2)管理员手动处理很是的步调:

一向将出现至极的那台服务器或mysql重新启航就好了,另一台数据库中改变的数据会自动同步到再也起动的mysql库中;

八 、Mysql主主复制中有些库或有些表因为数量原因无法共同至极:

壹 、将该库或该表未共同的数额导出.sql文件,通过命令:

mysqldump -uroot -p –master-data –single-transaction -R –databases
zzcp03 > zzcp03.sql

二 、在导出的sql里面查找当前的日记文件以及岗位(change master to …)

③ 、将其余对应的数据库中slave
stop了,然后让salve从sql文件中的地点处开头,通过命令已毕:

start slave until MASTER_LOG_FILE=”mysql-bin.000075″,
MASTER_LOG_POS=769;

4、然后让salve start起来;

五 、查看两台mysql中的slave是或不是不奇怪运营,不是不健康开展处理,确保健康运营,那样就可以已毕该表的数量同步了;

附多个功用代码:

导出有些库或表在slave不同台音信时期的增、删、修数据音信,并且带有二进制文件音讯:

mysqldump -uroot -p --master-data --single-transaction -R --databases zzcp03 > zzcp03.sql 

让slave获取的master二进制消息从钦命的位置处起初:

start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=769;

http://www.bkjia.com/Mysql/1281674.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/1281674.htmlTechArticlemysql主主复制汇总整理,mysql主汇总整理
mysql主主复制汇总整理 ① 、Mysql 主主、主从复制主要思路: 一 、mysql
复制实质: 就是其余的 MySQL 数…

① 、Mysql主主、主从复制主要思路:

一 、mysql复制实质:

就是其他的MySQL数据库服务器将以此数据变动的二进制日志在本机上再履行五遍,由此越发主要的一些是mysql数据库中务须要翻开二进制日志

贰 、Mysql主从复制:

就是A为主数据库,B为从数据库,B将A中数据变动的二进制日志在它数据库中再度履行三次;(B只会趁着A改变,A不会趁着B改变

③ 、Mysql主主复制:

就是A数据库、B数据库相互同步数据,A与B都将相互的数目变动的二进制日志在自个儿数据库中重新履行三回,就是七个主从复制的结合;(A与B相互跟随相互举办转移

二 、Mysql主主复制操作步骤:

只要A库、B库要贯彻主主复制:

一 、在主库中创制从库登录的账号、密码,并对账号进行授权:

创设账号:

CREATE USER ‘myuser’@’localhost’ IDENTIFIED BY ‘mypassword’;

授权:

 图片 5

贰 、修改mysql配置文件:一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件为mysql.ini)

A库配置文件扩张以下配置消息:(音讯见mysql_copy_update_info.txt文件)

#注意在mysql配置文件中填写一下信息的位置,必须为此位置,即[mysqld]标签下面
[mysqld]

#任意自然数n,只要保证两台MySQL主机不重复就可以了
server-id=1

#起始值。一般填第n台主MySQL。此时为第一台主MySQL
auto_increment_offset=1

#步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment=2

#开启二进制日志
log-bin=mysql-bin

log-error=/mysqldata/mysqld.log

pid-file=/mysqldata/mysqld.pid

#与此从库相对应的主库的ip地址
master-host=192.168.15.185

#在相对应的主库中,此库可登录的账号
master-user=backup

#在相对应的主库中,此库可登录的密码
master-password=123456


#在相对应的主库中登录的端口号
master-port=3306

#要同步的数据库,默认所有库,指定多个库添加新行就可以
replicate-do-db=phpcmsv9

#不要同步的数据库,指定多个库添加新行就可以
replicate-ignore-db=mysql

master-connect-retry=60

B库配置文件扩展的安顿音讯与A库中伸张新闻完全一致,除了server-id与auto_increment_offset不同外;

③ 、设置编码格式(否则中文简单出现乱码):

追加的配备音讯如下圈出音信,如若稍微标签[]中在mysql配置文件中私自认同没有的,本身手动添加(详情见character_encoding_info.txt文件)

[mysql]

default-character-set=utf8

[mysqld]

default-character-set = utf8
character_set_server = utf8

[mysqld_safe]

default-character-set = utf8

[mysql.server]

default-character-set = utf8

[client]

default-character-set = utf8

四 、重新开动mysql数据库:

Mysql命令:service mysqld restart;

⑤ 、查看相对应的主库的二进制文件名及其地点:

在主库中用mysql命令:show master status;

 图片 6

陆 、在本库中告诉相对应主库二进制文件名及其地方的音讯:

A为主库,B为从库时,在B库中履行mysql命令:(详细音讯请见文件change_master_to_info.txt文件)

change master to master_host='172.20.109.14',master_user='mysql913',master_password='123456',master_log_file='mysql-bin.000056',master_log_pos=151744220;

图片 7

B为主库,A为从库,在A库中进行同上命令,参数举行适量修改;

⑦ 、分别运行各自的slave:

分别在各自库中举行mysql命令:slave start;

⑧ 、查看slave运转后的情事:

分别在各自库中实践mysql命令:SHOW SLAVE STATUS\G;

关键是洞察:

(1)红圈的多个参数是或不是都是YES,借使不是,那么就是出新了分外,查看第②行的错误提醒,进行充裕处理,对于大规模的尤其处理见四中进行缓解;

(2)红线为复制的数据库,查看是还是不是是本身索要复制的数据库,假设不得法,那么久须求修改mysql的计划文件中的音信,重新开首执行三次;

 图片 8

九 、已毕主主复制配置,举行数据测试:

叁 、Mysql主从复制操作步骤:

与上述主主复制步骤类似,只是主主复制对多少个库都进行操作,主从复制只需求对从库进行change
master to操作,对主库只需求配置开启二进制、server-id即可,对从库配置音讯同上;

肆 、怎么样在现有主主上添加库:

① 、在运用的mysql上先依照须求创设库,并创办必要的表添加数据;

二 、在另一台mysql上平等创制对应的库,并将对应库中的数据copy过来;

③ 、分别修改mysql的布局文件中的replicate-do-db新扩张一行,值就是要新加上的库,然后再一次起动mysql服务;

④ 、然后通过linux命令进入mysql,查看slave是或不是科学运维,假诺开行有卓殊进行拍卖,确保健康运转;

⑤ 、新增进的库就到了主主复制链中,举办测试即可;

伍 、怎么样在现有主主上去掉有个别库:

① 、分别修改mysql对应的配置文件,将索要去掉的库的replicate-do-db注释掉或许删掉;

贰 、重新起动mysql服务;

三 、进去mysql中,分别查看mysql的日记文件新闻:change master status;

肆 、分别重新执命令行start slave
until MASTEHighlander_LOG_FILE=”mysql-bin.000075″, MASTER_LOG_POS=216,将从库中读取二进制日志音讯地方切换成相应主库现有地方中去;

五 、完毕对某些库的去掉成效;

六 、Mysql主主和主从复制常见相当处理:

1、Slave_IO_State: Waiting to reconnect after a failed registration on
master异常:

化解措施:

在对应主库上从新对相应账号执行授权命令

grant replication slave on *.* to “repl’@’%’ identified by
‘sangfordb’;

FLUSH PRIVILEGES;

接下来再度stop slave 和start
slave就足以

2、Slave_IO_State:connecting to master

竭泽而渔办法:

案由是此账号不可以连接主库,查看账号远程登录?Linux防火墙端口开放?

3、slave_sql_running:NO异常:

化解方法:

跳过推行报错的sql就好了,在从库中举办mysql命令:

SET GLOBAL SQL_SLAVE_SKIP_COUNTE福睿斯 = 1(等号后为几看自个儿有多少个错误了,不了解的就尝试,直到SHOW SLAVE STATUS查看结果该尤其消除掉甘休)

四 、Slave运转健康,就是不联合数据:

原因:出现此情况的由来固然,从库中获取主库的二进制音信的文本名和义务与主库中新型数据地方不等同;

缓解形式:查看主库的二进制文件名和新闻:change
master status;然后在从库中推行:start slave until
MASTEEscort_LOG_FILE=”mysql-bin.000075″, MASTER_LOG_POS=216;命令,将从库中获取主库二进制文件消息更新到主库现有处境,若是是主主复制那就在两台mysql中分头执行即可;

柒 、Mysql主主和主从复克制务器很是为止后处理思路:

(1)mysql或slave出现分外管理员如何获悉:

一 、slave至极获知:编写二个shell脚本,用nagios监控slave的五个yes(Slave_IO及Slave_SQL进度),如察觉唯有1个或零个yes,就表明主主或主从出问题了,发短信警报;

(2)管理员手动处理非凡的手续:

直白将出现很是的那台服务器或mysql重新开动就好了,另一台数据库中改变的数据会自动同步到再也启航的mysql库中;

⑧ 、Mysql主主复制中有些库或有个别表因为数量原因无法一起极度:

① 、将该库或该表未共同的数码导出.sql文件,通过命令:

mysqldump -uroot -p –master-data –single-transaction -R –databases
zzcp03 > zzcp03.sql

二 、在导出的sql里面查找当前的日志文件以及职位(change master to …)

三 、将别的对应的数据库中slave
stop了,然后让salve从sql文件中的地方处起首,通过命令落成:

start slave until MASTER_LOG_FILE=”mysql-bin.000075″,
MASTER_LOG_POS=769;

4、然后让salve start起来;

伍 、查看两台mysql中的slave是不是不荒谬运行,不是不健康进行拍卖,确保健康运行,那样就足以成功该表的多少同步了;

附八个功效代码:

导出某些库或表在slave不联合音信时期的增、删、修数据新闻,并且包蕴二进制文件音信:

mysqldump -uroot -p --master-data --single-transaction -R --databases zzcp03 > zzcp03.sql 

让slave获取的master二进制音讯从钦点的岗位处先导:

start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=769;

相关文章