mysql5.7主从配置及详细步骤

首先保证需要有两台或以上的mysql服务器

楼主使用的是centos7、mysql5.7

主服务器

1.主服务器查询my.cnf文件在哪里(windows是my.ini)

[root@iZ2ze6jtdc34fsqky9qc24Z ~]# find / -name my.cnf
/etc/my.cnf

2.修改my.cnf文件(如果mysql处于运行状态需停止,改完my.cnf在启动)

[mysqld]
#server-id需要保证唯一性 不可与其他从服务器相同 如果为0会拒绝所有从服务器连接
server-id=1
log_bin=master-bin
#binlog的索引文件 可以不配置 默认会根据上面配置增加index后缀
log-bin-index=master-bin.index
#需要同步的数据库
#binlog-do-db=test
#不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
#为每个session分配的内存,在事务过程中用来存储二进制日志的缓存(可以不配置)
#binlog_cache_size=1M
# 主从复制的格式(mixed,statement,row,默认格式是statement)
# binlog_format=mixed
# # 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
expire_logs_days=7

1)statement:语句级,binlog 会记录每次一执行写操作的语句。相对 row 模式节省空间,但是可能产生不一致性,比如“update tt set create_date=now()”,如果用 binlog 日志 进行恢复,由于执行时间不同可能产生的数据就不同。

优点:节省空间。
缺点:有可能造成数据不一致。
2)row:行级, binlog 会记录每次操作后每行记录的变化。

优点:保持数据的绝对一致性。因为不管 sql 是什么,引用了什么函数,他只记录 执行后的效果。缺点:占用较大空间。

3)mixed:statement 的升级版,一定程度上解决了,因为一些情况而造成的 statement 模式不一致问题,默认还是 statement,在某些情况下譬如:当函数中包含 UUID() 时;包含 AUTO_INCREMENT 字段的表被更新时;执行 INSERT DELAYED 语句时;用 UDF 时;会按照 ROW 的方式进行处理

3.改完以后进入mysql创建一个用户用来给从库复制用(不懂的自行百度或查看我之前的文章),然后运行以下命令查看二进制信息

mysql> show master status;
+-------------------+----------+--------------+-------------------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              | Executed_Gtid_Set |
+-------------------+----------+--------------+-------------------------------+-------------------+
| master-bin.000001 |      154 |              | mysql,test,information_schema |                   |
+-------------------+----------+--------------+-------------------------------+-------------------+
1 row in set (0.10 sec)

从服务器

1.修改从服务器的my.cnf(如果mysql处于运行状态需停止,改完my.cnf在启动)

[mysqld]
server-id=3

2.进入mysql运行以下命令

mysql> change master to
    -> master_host='192.168.0.109',     //主服务器的地址
    -> master_port=3306,                //主服务器端口
    -> master_user='test1',             //主服务器账号
    -> master_password='Test@0320',     //主服务器密码
    -> master_log_file='master-bin.000001', //主服务器二进制文件
    -> master_log_pos=154;                  //主服务器position行数
Query OK, 0 rows affected, 2 warnings (0.01 sec)

3.运行成功代表已经设置完成,运行show slave status \G;命令查看是否正常

Slave_IO_Running: Yes     //从主库读取二进制文件到从库的中继日志 
Slave_SQL_Running: Yes    //将中继日志中数据转化为sql并运行

4.开启同步命令

start slave 开启
 stop slave 关闭
 reset slave和 reset slave all  重配,重置mysql主从同步的命令
---reset slave 仅清理master.info 和 relay-log.info 文件
---删除所有的relay log 文件,重启用一个新的relay log 文件。
---重置 MASTER_DELAY  复制延迟间隔为:0
---不清理内存里的同步复制配置信息
---不重置 gtid_executed or gtid_purged 参数值
 reset slave all 功能和上面一样但是会立即清理内存里的同步配置信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux MySQL 5.7主从配置是一种常用的数据库架构,用于提高数据库的可用性和性能。在主从配置中,一个MySQL服务器充当主服务器,负责处理写操作和更新数据,而其他MySQL服务器充当从服务器,负责复制主服务器上的数据并处理读操作。 以下是Linux MySQL 5.7主从配置的步骤: 1. 安装MySQL:在Linux服务器上安装MySQL 5.7版本,并确保主从服务器上都安装了相同版本的MySQL。 2. 配置服务器:在主服务器上进行以下配置: - 打开MySQL配置文件(一般位于/etc/mysql/my.cnf)。 - 设置server-id参数,为主服务器分配一个唯一的ID号。 - 启用二进制日志(binlog),以记录所有的写操作。 - 重启MySQL服务使配置生效。 3. 创建复制用户:在主服务器上创建一个用于复制的用户,并为其授予复制权限。 4. 备份主服务器数据:在主服务器上执行数据库备份操作,以便在从服务器上进行初始化。 5. 配置服务器:在从服务器上进行以下配置: - 打开MySQL配置文件。 - 设置server-id参数,为从服务器分配一个唯一的ID号。 - 配置服务器的连接信息,包括主服务器的IP地址、复制用户和密码。 - 启动从服务器,并连接到主服务器进行数据复制。 6. 同步数据:从服务器连接到主服务器后,会自动开始复制主服务器上的数据。可以使用SHOW SLAVE STATUS命令来查看复制状态。 7. 测试主从配置:在主服务器上进行写操作,并在从服务器上进行读操作,以确保主从复制正常工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值