我记得一年前我就做过一篇关于mysql主从配置的教程,数据库版本 MySQL 5.5

发布时间:2020-02-11  栏目:数据  评论:0 Comments

骨干配置实现,上面是互为主从

下边包车型大巴归于主主配置,日常相当少会用到,大概会赶过冲突。
 
# 查看 B 服务器主机(记录二进制最早文件,地方)
SHOW MASTER STATUS;
 
# 校订 A 服务器配置  (改正为B服务器的主机状态卡塔尔国
CHANGE MASTER TO
MASTER_HOST=’192.168.1.101′,MASTER_USER=’master_slave’,MASTER_PASSWORD=’master_slave123!@#’,MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=106;
 
# 开启 A 服务器同步进度
START SLAVE;
 
# 分别查看 A B 服务器同步状态,明确是否成功
SHOW SLAVE STATUS;SHOW MASTER STATUS;
 
# 解锁 A B 服务器
UNLOCK TABLES;
 
# 数据测量检验分别在 A B 服务器上创立表插入数据测量检验
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `value` varchar(100) DEFAULT ‘0’,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `test` VALUES (‘1’, ‘Hello’);
 
注意:
1.
数据库目录下的master.info的内容会覆盖命令行或my.cnf中钦定的有的选项,修改配置需删除master.info

  1. my.cnf中的master配置在MySQL 6.0自此会收回,官方建议选拔动态的CHANGE
    MASTELX570
  2. 倘诺只钦定ignore-db而不钦赐do-db。则新创制数据库的操作也会联合。
  3. 不容争辩要stop
    主数据库服务器的防火墙,不然从服务器不能够中远间隔访谈主服务器。
     
    互为同步安顿实例:
  4. A B 互为骨干同步test, 差异台mysql:
    八个数据库配置中均安装:binlog-do-db=test,
    binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql
     
  5. A B 互为主从只同步test,不一致步其余数据库,新创造的也不会一同
    五个数据库配置中均安装:binlog-do-db=test,replicate-do-db=test
     
  6. A B 互为基本不相同步mysql, 同步别的数据库,例如创造的新数据库也会联手
    多个数据库配置中均安装:binlog-ignore-db=mysql,replicate-ignore-db=mysql
     
  7. A B 互为着力同步全数数据库,富含新建的数据库
    七个数据库配置中均不设置上述四项 
    分享到:

重启mysql服务

授权同步账号:

SHOW SLAVE STATUS;

5、先重启主机A的mysql,再重启从机B的mysql

slave stop;

A B 为两台 MySQL 服务器,均展开二进制日志,数据库版本 MySQL 5.5
生龙活虎、服务器参数
 
[A 服务器 192.168.1.100]
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
 
sync-binlog = 1
 
[B 服务器 192.168.1.101]
server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
sync-binlog = 1
 
重启A、B的数据库服务器
二、操作步骤
 
# A B 服务器结束同步
STOP SLAVE;
 
# A B 服务器清空MASTEENCORE日志
RESET MASTER;
 
# A B 服务器清空SLAVE日志
RESET SLAVE;
 
# A 服务器授权同步账户
(大家会一起壹遍复制数据库文件,所以授权为192.168.1%卡塔尔
GRANT REPLICATION SLAVE ON *.* TO ‘master_slave’@’192.168.1%’
IDENTIFIED BY ‘123456’;
FLUSH PRIVILEGES;
 
# A 服务器锁表(锁表状态下不可能止住mysql进度,不然会退步)
FLUSH TABLES WITH READ
LOCK;(当线上正在运行数据库时,进行锁表操作,数据不在写入卡塔尔国
 
# 如若应用SSH,必要再行张开,复制数据库文件。
tar -cvf /tmp/mysql-data.tar /www/mysql
tar -xvf /tmp/mysql-data.tar -C /
 
# 查看 A 服务器主机状态(记录二进制初叶文件,地方)
SHOW MASTER STATUS;
 
图片 1
 
 
 
 
# B 服务器锁表(锁表状态下不能够终止mysql进度,不然会停业)
FLUSH TABLES WITH READ LOCK;
 
# 修正 B 服务器配置 (改良为A服务器的主机状态State of Qatar
CHANGE MASTER TO
MASTER_HOST=’192.168.1.100′,MASTER_USER=’master_slave’,MASTER_PASSWORD=’123456′,MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=106;
MASTER_LOG_FILE 对应A 服务器show master
status中的File;MASTER_LOG_POS对应A 服务器show master
status中的Position
 
图片 2
上海教室箭头所指的五个参数要是都为yes,就代表协同成功。
# 开启 B 服务器同步过程
START SLAVE;
 
# 查看 B 服务器同步状态是否符合规律

复制代码

复制代码 代码如下:

 代码如下

将C设置为主:
终止同步:

3)
change master语法错误,落下逗号

复制代码 代码如下:

GRANT REPLICATION SLAVE ON *.* TO ‘test’@’%’ IDENTIFIED BY ‘test’;

slave start;

 代码如下

清空服务器master日志:

server-id   = 3
binlog-do-db=test
binlog-do-db=test_admin
log-bin=mysql-bin
log-slave-updates
replicate-wild-do-table=test.%
replicate-wild-do-table=test_admin.%
binlog-ignore-db=mysql
slave-skip-errors=all

起步同步:

server-id   = 4
replicate-do-db=test
replicate-do-db=test_admin
log-bin=mysql-bin
log-slave-updates
replicate-wild-do-table=test.%
replicate-wild-do-table=test_admin.%
binlog-ignore-db=mysql
slave-skip-errors=all
 

复制代码 代码如下:

CHANGE MASTER TO MASTER_HOST=’10.1.10.30′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

0卡塔尔国计划工作 在四台机器下边安装好mysql后,创设用于合作的账号。
加上账户:

 代码如下

复制代码 代码如下:

复制代码

复制代码 代码如下:

悬停同步:

CHANGE MASTER TO MASTER_HOST=’10.1.10.30′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

slave stop;

复制代码 代码如下:

复制代码

复制代码 代码如下:

 
将C设置为从:
终止同步:

5)
A B的server-id相同:
Last_IO_Error: Fatal error: The slave I/O thread stops because master
and slave have equal MySQL server ids;
these ids must be different for replication to work (or the
–replicate-same-server-id option must be used on
slave but this does not always make sense; please check the manual
before using it).
查看server-id
mysql> show variables like ‘server_id’;
手动校订server-id
mysql> set global server_id=2;
#这里的数值和my.cnf里设置的等同就能够
mysql> slave start;
6)change master之后,查看slave的状态,发现slave_IO_running 为NO

2、 展开主机A的my.cnf,输入

server-id = 1
replicate-do-db=test
replicate-do-db=test_admin
log-bin=mysql-bin
log-slave-updates
replicate-wild-do-table=test.%
replicate-wild-do-table=test_admin.%
binlog-ignore-db=mysql
slave-skip-errors=all

重启mysql是陈设生效

将A设置为从:
悬停同步:

slave start;

server-id = 2
replicate-do-db=test
replicate-do-db=test_admin
log-bin=mysql-bin
log-slave-updates
replicate-wild-do-table=test.%
replicate-wild-do-table=test_admin.%
binlog-ignore-db=mysql
slave-skip-errors=all

复制代码

slave stop;

 代码如下

slave stop;

假使有两台机械,已经安装好了mysql(尽量同版本,且两台机械相近网络,能够ping通)

重启mysql是安插生效
将A设置为主:
停下同步:

 代码如下

改正C配置文件为:

reset master;

GRANT REPLICATION SLAVE ON *.* TO ‘test’@’%’ IDENTIFIED BY ‘test’;

FLUSH PRIVILEGES;

2)将B设置为A的从

5)
A B的server-id相同:

安排同步音信:

好了,那篇小说总共计到了mysql主从布局与数码交互作用主从配置配置教程。

复制代码 代码如下:

Last_IO_Error: Fatal error: The slave I/O thread stops because master
and slave have equal MySQL server ids;
these ids must be different for replication to work (or the
–replicate-same-server-id option must be used on
slave but this does not always make sense; please check the manual
before using it).

开行同步:

复制代码

INSERT INTO user (Host,User,
Password,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES(‘%’,’test’,password(‘test’),’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

CHANGE MASTER TO MASTER_HOST=’10.1.10.28′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

flush tables with read lock;

复制代码

成就今后方可成立增多数据测验一下是或不是足以。
上边是大面积错误管理:

2、如何运转、结束mysql,找好运营文件

复制代码 代码如下:

 代码如下

重启mysql服务
悬停同步:

 代码如下

清空服务器master日志:

改正C配置文件为:

复制代码 代码如下:

复制代码

CHANGE MASTER TO MASTER_HOST=’10.1.10.28′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

 代码如下

flush privileges;

 代码如下

复制代码 代码如下:

6、验证

  • retry-time: 60 retries
    2)
    在没有解锁的景色下终止slave进度:
    mysql> stop slave;
    ERROR 1192 (HY000): Can’t execute the given command because you have
    active locked tables or an active transaction
    3)
    change master语法错误,落下逗号
    mysql> change master to
    -> master_host=’IP’
    -> master_user=’USER’,
    -> master_password=’PASSWD’,
    -> master_log_file=’mysql-bin.000002′,
    -> master_log_pos=106;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the
    manual that corresponds to your MySQL server version for the right
    syntax to use near ‘master_user=’USER’,
    master_password=’PASSWD’,
    master_log_file=’mysql-bin.000002′ at line 3

复制代码

刷新数据库:

CHANGE MASTER TO MASTER_HOST=’10.1.10.28′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

复制代码 代码如下:

 代码如下

3)将D设置为C的从

复制代码

flush tables with read lock;

 代码如下

复制代码 代码如下:

清空服务器master日志:

复制代码 代码如下:

在主机A中,mysql>show master statusG;

刷新授权:

server-id               = 1    #长机标示,整数
log_bin                 = /var/log/mysql/mysql-bin.log  
#管教此文件可写
read-only       =0  #长机,读写都能够
binlog-do-db    =test   #要求备份数据,多个写多行
binlog-ignore-db=mysql #无需备份的数据库,多少个写多行

slave stop;

flush privileges;

布置同步音信:

改良A配置文件为:

复制代码 代码如下:

 代码如下

复制代码 代码如下:

 代码如下

结构同步消息:

File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql

复制代码 代码如下:

 
起步同步:

mysql主从布局小记:
共有四台机械:A(10.1.10.28卡塔尔,B(10.1.10.29卡塔尔,C(10.1.10.30卡塔尔,D(10.1.10.31卡塔尔(قطر‎。
配置后结果:A-C互为骨干,B为A的slave,D为C的slave。

 代码如下

重启mysql服务
停下同步:

INSERT INTO user (Host,User,
Password,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES(‘%’,’test’,password(‘test’),’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

reset master;

复制代码

CHANGE MASTER TO MASTER_HOST=’10.1.10.30′, MASTER_USER=’test’,
MASTER_PASSWORD=’test’, MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;

 
开发银行同步:

slave stop;

 代码如下

4)
在平素不休息slave进度的意况下change master
mysql> change master to master_host=‘IP’, master_user=’USER’,
master_password=’PASSWD’,
master_log_file=’mysql-bin.000001′,master_log_pos=106;
ERROR 1198 (HY000): This operation cannot be performed with a running
slave; run STOP SLAVE first

 
将C设置为主:
停下同步:

复制代码 代码如下:

 
2)将B设置为A的从

server-id = 4
replicate-do-db=test
replicate-do-db=test_admin
log-bin=mysql-bin
log-slave-updates
replicate-wild-do-table=test.%
replicate-wild-do-table=test_admin.%
binlog-ignore-db=mysql
slave-skip-errors=all

复制代码

GRANT REPLICATION SLAVE ON *.* TO ‘test’@’%’ IDENTIFIED BY ‘test’;

留下评论

网站地图xml地图