mysql 主从复制 配置记录

两台服务器mysql实现主从复制

准备步骤:

两台已经安装好mysql数据库的服务器

上一篇有提到安装mysql5.7.24

主服务器配置:

创建mysql远程登录角色和权限:

mysql> create user 'realfake'@'106.12.203.18' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to 'realfake'@'106.12.203.18' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

主mysql的my.cnf添加:

# # server-id 唯一的服务辨识号,数值位于 1 到 2^32-1之间.
# # 此值在master和slave上都需要设置.
# # 如果 “master-host” 没有被设置,则默认为1, 但是如果忽略此选项,MySQL不会作为master生效.
server-id = 1 #[必须]服务器唯一ID,默认是1
##------------------------------------------master上的配置开始------------------------------------------------##
#                                                                                                              #
# # log-bin 打开二进制日志功能.                                                                                #
# # 在复制(replication)配置中,作为MASTER主服务器必须打开此项                                                   #
# # 如果你需要从你最后的备份中做基于时间点的恢复,你也同样需要二进制日志.                                       #
log-bin = mysql-bin #[必须]启用二进制日志                                                                      #
# # 需要开启生成二进制日志记录相关配置,配置在需要被复制的服务器上,即:master                                 #
binlog-do-db = test_db #指定对名称为test_db的数据库记录二进制日志                                              # 
#binlog-ignore-db = mysql #指定不对名称为mysql的数据库记录二进制日志                                            #
#binlog-ignore-db = information_schema #指定不对名称为information_schema的数据库记录二进制日志                  #
binlog_format = mixed #binlog日志格式,mysql默认采用,如果从服务器slave有别的slave要复制那么该slave也需要这一项#
expire_logs_days = 7 #超过7天的binlog删除###                                                                   #
#                                                                                                              #
##-------------------------------------------master上的配置结束-----------------------------------------------##
skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启
default-storage-engine = InnoDB #默认存储引擎
lower_case_table_names = 1 #忽略表大小写

 从服务器配置:

从mysql的my.cnf

# # server-id 唯一的服务辨识号,数值位于 1 到 2^32-1之间.
# # 此值在master和slave上都需要设置.
# # 如果 “master-host” 没有被设置,则默认为1, 但是如果忽略此选项,MySQL不会作为master生效.
server-id = 2 #[必须]服务器唯一ID,默认是1

##-------------------------------------------slave上的配置开始------------------------------------------------##
#                                                                                                              #
# # replicate-do-db 需要做复制的数据库,如果复制多个数据库,重复设置这选项即可master上不需要此项,slave上需要   #
replicate-do-db = test_db #复制名称为test_db的数据库                                                           #
# # replicate-ignore-db 不需要复制的数据库,如果要忽略复制多个数据库,重复设置这个选项即可                     #
#replicate-ignore-db = mysql #不需要(忽略)复制名称为mysql的数据库                                             #
#replicate-ignore-db = information_schema #不需要(忽略)复制名称为information_schema的数据库                   #
#                                                                                                              #
# 如果你在使用链式从服务器结构的复制模式 (A->B->C),                                                            #
# # 你需要在服务器B上打开此项.                                                                                 #
# # 此选项打开在从线程上重做过的更新的日志,                                                                    #
# # 并将其写入从服务器的二进制日志.                                                                            #
# # 默认值为OFF;设置log_slave_updates = 1即表示开启                                                            #   
#log_slave_updates = 1                                                                                         #
#                                                                                                              #
##------------------------------------------slave上的配置结束-------------------------------------------------##

skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启
default-storage-engine = InnoDB #默认存储引擎
lower_case_table_names = 1 #忽略表大小写

连接配置:

登录主mysql查看状态:

show master status;


登录从mysql,


stop slave;

reset slave;
change master to 
master_user='realfake', 
master_password='123456',
master_host='118.25.178.145',
master_port=3306, 
master_log_file='mysql-bin.000005',
master_log_pos=858;

内容分别为在主mysql上创建的角色、密码、主服务器ip,还有就是主mysql status的file和pos,更新后

start slave;

查看连接结果:

登录从mysql,

mysql> show slave status\G

出现如下则连接成功:

测试主从复制

在主mysql中的test数据库中添加表:

mysql> create table test_realfake(id int auto_increment primary key,name varchar(255));
Query OK, 0 rows affected (0.10 sec)

查看从mysql的数据库中是否有更新:

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
| test_realfake  |
| testtable      |
+----------------+
3 rows in set (0.01 sec)

mysql> desc test_realfake;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

测试成功。

希望对大家有帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值