`
lichuanbao
  • 浏览: 127741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySql从库IP变更时主库的配置

阅读更多
公司有两个数据库服务器,使用的MySql的主从库同步功能定时同步数据。因为从库服务器搬迁,导致IP地址的更改,引起两个数据库不能同步。这时通过一下简单的几步恢复。
1,修改主库中同步账户的host属性,以允许新地址的用户可以登录。
2,使用
flush PRIVILEGES;
命令,在不重启主库的情况下使上部的配置生效。
3,从库重新启动同步服务,
start slave;


简单三部,主从库同步就恢复了。
查看主库和从库的状态可以使用
show master/slave status;
。也可以用
show processlist;
来查看数据库中的活跃线程。

实际肯定会有许多比这个更加复杂的情况出现。这里还需要不断补充。

补充一:
使用中发现从库的用户连接不上主机,这是因为主库中的用户没有配置访问权限所致。
grant select on your_db.* to user@your_ip identified by 'your_password'
。然后再刷新一下权限即可。

补充二:

公司物业停电检修,结果导致部署在公司内部的从服务器断点,从而造成了主从库数据不一致的情况出现。
早上来到公司执行
stop slave;start slave;
结果发现丛数据库并不能正常同步,报告主键冲突。查看《高性能Mysql官方文档》得知,这是因为从数据库在复制的过程中异常断电,没有记录正确的复制位置,然后重新启动复制后,仍然从上次开始的地方复制,导致重复插入同样的数据,造成主键冲突。

官方文档建议使用Maatkit的mk_slave_restart工具恢复从库。于是赶紧装了一个。
然后登录从库,先停止从库的同步,然后执行语句
 set global sql_slave_skip_counter=1;
,然后重新启动同步。再次查看从库的状态
show slave status;
,发现已经能够正常同步数据了。搞定之。
如果set global sql_slave_skip_counter=1不起作用,可以试着将后面的数值改为2获取更大的数字试试,可能是因为重复的数据不止一条,看来只要将这些重复的数据忽略掉就好了。

补充三:

要搞定主从库同步,《高性能mysql》还是必须要有的。
很悲剧的物业再次停电检修,周一来公司一看果然数据库同步又坏了。上次仅仅是主键重复,说明同步的位置没有写入磁盘,通过“补充一”的简单几步就完成了。这次看来没有这么简单,竟然报告从库的同步日志损坏
引用
Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.


果断查看高性能mysql,在主从库同步一章有这样的说明文字
引用
Relay logs corrupted on the slave
If the master’s binary logs are intact, you can use CHANGE MASTER TO to discard and
refetch the corrupt relay logs. Just point the slave at the same position from
which it’s currently replicating (Relay_Master_Log_File/Exec_Master_Log_Pos).
This will cause it to throw away any relay logs on disk.

看来已经同步的日志文件是不管用了,需要重新同步,首先
stop slave;
然后
show slave status
查看一下上次同步的日志文件名称和同步的位置(Relay_Master_Log_File/Exec_Master_Log_Pos),然后重新使用change mater 进行同步
change master to master_host='你的主库地址',master_user='用户名',master_password='密码',master_log_file='上一步查询到的日志文件名称',master_pos=上步查到的同步的当前位置
,然后重新启动从库的同步
start slave;
,再次查看从库的同步状态,一切OK!


附件中是英文版的《高性能MySql》,有需要的同学自取。
1
1
分享到:
评论

相关推荐

    mysql主从配置

    MySQL主从配置是数据库高可用性和数据复制的重要手段,允许数据在多个服务器之间实时同步,...主库的任何数据变更都将被复制到从库,实现数据的实时同步。注意监控复制进程,确保其正常运行,遇到问题时及时排查解决。

    MySQL的M-S部署手册1

    14. **复制配置**:在从库上配置`CHANGE MASTER TO`语句,指定主库的IP、端口、用户名、密码和主库的binlog文件名及位置。 15. **启动复制**:在从库上执行`START SLAVE`命令,开始数据复制过程。 16. **监控复制*...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    13-MySQL主从复制从库只读案例实战及原理总结.avi 14-企业生产场景MySQL主从复制故障原因及实战解决.avi 15-从库开启BINLOG原因及开启实战讲解1.avi 16-从库开启BINLOG原因及开启实战讲解2.avi 17-企业场景一主多从...

    mysql双机热备方案

    主库配置包含`binlog-do-db`和`binlog-ignore-db`,从库配置包含`replicate-do-db`和`replicate-ignore-db`。 - **启动MySQL服务**:配置完成后,重启MySQL服务以应用新配置。 2. **创建复制用户** 在主服务器上...

    mysql-读写分离.docx

    MySQL 读写分离是指在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理 select 查询,达到提高数据库整体读写性能的目的。主数据库另外一个功能就是负责将事务性查询导致的数据变更同步到从库中。读写...

    Mysql主从复制&半同步复制原理.pdf

    如果在主库接收到从库ACK后,从库出现故障,那么这部分数据可能没有在从库上应用。 4. **容错机制**:在网络异常或从库宕机的情况下,主库可能会被阻塞,直到超时或者从库恢复。超时设置可以通过`rpl_semi_sync_...

    mysql双向复制

    此外,还需要设定从库连接主库时使用的用户、密码等信息,并通过SQL命令`GRANT REPLICATION SLAVE ON *.* TO 'backup'@'172.26.1.68' IDENTIFIED BY 'backup';`授权该用户具有复制权限。 ##### 3. 数据迁移 在主库...

    mysql中间件研究(Atlas_cobar_TDDL)

    将前台 SQL 语句变更并按照数据分布规则转发到合适的后台数据分库,再合并返回结果,模拟单库下的数据库行为。 Atlas、Cobar、TDDL 是三个非常优秀的 mysql 中间件产品,每个产品都有其特点和优势,选择哪一个产品...

    详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    - **主库(Master)**:处理所有的写操作,数据变更后立即同步到从库。 - **从库(Slave)**:接收并应用主库的更新,只处理读操作。 **Amoeba(变形虫)** 是阿里巴巴开源的一款数据库中间件,它实现了 MySQL 的...

    mysq单向或双向l数据同步

    4. **配置从库**:在 B 的 `my.ini` 文件中设置 `server-id` 为 2,然后指定主库信息(如 IP、用户、密码、端口等),以及同步的数据库 `replicate-do-db`。 5. **授权与重启**:在 A 的 MySQL 控制台中为从库用户...

    Mysql主从集群搭建方法,以及基于spring boot注解式数据库读写分离代码示例.zip

    对于读操作,可以自动路由到从库,写操作则定向到主库。 4. **基于注解的读写分离**: Spring Boot结合`@Transactional`注解,可以智能地将事务操作分配给主数据源。同时,可以通过自定义注解,比如`@Read`和`@...

    canalClient.zip

    当MySQL实例的IP发生变化时,只需在Canal的配置文件中更新`canal.instance.masterAddress`的值,确保Canal能正确连接到新的MySQL实例。 **6. 使用CanalClient** CanalClient是Canal的客户端,用于订阅和消费Canal...

    [实战]Java分布式高级架构师课程学习笔记.docx

    它涉及到主库的数据变更会被记录到二进制日志(binlog),然后被从库读取并执行,确保数据的一致性。配置过程中,需要设置主库的server_id,开启binlog,并配置从库的 slave_io_thread 和 slave_sql_thread。 2. **...

    MySQL的主从复制步骤详解及常见错误解决方法

    - 导入主库备份数据到从库:`mysql -u root -p 。 - 设置从库复制,使用在备份文件中记录的`CHANGE MASTER TO`命令,例如`CHANGE MASTER TO MASTER_HOST='10.1.1.45', MASTER_USER='repl', MASTER_PASSWORD='...

    详解MySQL数据库设置主从同步的方法

    3. 故障切换:当主库出现问题时,可以迅速切换到从库,保证服务连续性。 配置MySQL主从同步的步骤如下: 1. 准备工作: - 确保主从数据库版本一致,推荐5.5及以上版本。 - 主从数据库的数据应处于一致状态,以...

Global site tag (gtag.js) - Google Analytics