在一家小公司做Java程序员,除了编代码,做的事情也很杂,这次有机会接触到MySQL数据的主从备份,之前部门老大有做过一次主从,也算是有一份check list照做,即使这样,中间还是出了很多问题,经过几天的折腾,今天算是把问题解决了,因此决定写一篇博客记录一下,方便以后遇上类似的问题的时候查看,也希望能给遇到相同问题的人带来帮助!
前置条件:两台DB服务器,MySQL版本都是5.5.29,一个数据库在用,一个用来备份。
目标:将两个db做成主从备份,实现自动备份
步骤:1,停掉使用数据库的程序,以sql的形式备份数据库并将数据同步到备份数据库。
2,编辑主数据库的/etc/my.cnf文件,在mysqld部分添加如下代码
server-id = 1 #用来标识主数据库,如果有多个数据库做主从,这个数字要唯一 log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写 read-only =0 #主机,读写都可以 binlog-do-db =test #需要备份数据,多个写多行 binlog-ignore-db=mysql #不需要备份的数据库,多个写多行
3,修改了my.cnf文件,重启主数据库,service mysql restart
4,创建备份用的数据库用户,并给从机授权,这里直接授权并刷新数据库权限,MySQL会自动先创建 用户
GRANT REPLICATION SLAVE ON *.* TO ‘slave’@’192.168.1.101‘ IDENTIFIED BY ‘123456’; FLUSH PRIVILEGES;
5,修改从机my.cnf文件,,在mysqld部分添加如下代码并重启MySQL
server-id = 2 log_bin = /var/log/mysql/mysql-bin.log replicate-do-db =test #只复制某个库 replicate-ignore-db=mysql #不复制某个库
6,在从机上设置主机的信息,登录mysql,执行下面的sql语句
- mysql>stop slave;
- mysql>CHANGE MASTER TO MASTER_HOST=’192.168.1.100’, MASTER_USER=’slave’, MASTER_PASSWORD=’123456‘,
- MASTER_LOG_FILE=’mysql-bin.0xx‘, MASTER_LOG_POS=33421;
- mysql>start slave;
7,上面代码中的Master_host为主机的地址,master_user和pwd分别是主机上创建的用于备份的slave用户和对应的密码,master_log_file和log_pos非常重要,设置错了就很容易出现1236的错误
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
8,因此为了避免出错,在执行步骤6之前,先登录主机MySQL,执行下面的sql语句查看主机的log file和log pos,然后在步骤6执行sql语句的时候将对应的信息写对
show master status;
9,上面的步骤完成之后,主从就算是配置好了,在从机上可以使用show slave status sql命令查看slave的状态,如果slave_io_running和slave_sql_running都显示yes表示成功了!可以在主数据库上执行更新和插入的操作,然后到从机数据库中验证!
ps:最初是5.5.29版本,使用了上面的方法配置,没能成功,网上也找了很多原因,都以失败告终,今天将数据库版本替换成5.6.10之后使用上面的方法才配置成功的。先将数据备份好 ,rpm -qa|grep -i mysql查看已经安装的mysql,然后使用rpm -e ***mysql的方法卸载mysql,清空/var/lib/mysql下的binlog和错误日志文件,清空后注意要编辑mysql-bin.index文件,将里面对应的信息删除,然后保存,安装时可以将原来配置好的my.cnf文件移走,等安装成功后再覆盖回来。
相关推荐
MySQL主从备份是一种常见的数据冗余和高可用性解决方案,它允许数据在多个服务器之间同步,确保即使主服务器出现故障,从服务器也能接管并继续提供服务。在这个场景中,我们有两台服务器:A服务器作为主服务器运行...
三、MySQL主从复制 主从复制是MySQL数据库高可用性和数据冗余的一种常见实现方式。在这个过程中,一个MySQL实例作为主节点接收写入操作,而其他实例作为从节点同步主节点的数据。为了配置主从复制,你需要: 1. 在...
- **操作系统:** 主从服务器均运行在RedHat Enterprise Linux Server release 6.7(Santiago)操作系统上。 - **主服务器配置:** IP地址为***.**.***.***,主机名为mysql2,server_id设置为245。 - **从服务器配置...
MySQL主从架构虽然能缓解这一问题,但在面临单一主库故障时,系统仍存在风险。本文将详细介绍如何利用Keepalived在Linux上构建MySQL双机热备方案,以实现高可用性和数据安全性。 【标签】:Keepalived 【正文】: ...
MySQL5.7主从配置是数据库高可用性的一种常见解决方案,它允许数据在多个服务器之间实时或近实时地复制,以实现数据备份、负载均衡和故障恢复。以下是对这个实例的详细解析: 首先,确保在Master和Slave两台服务器...
主从备份是数据安全的重要策略,通过复制主服务器的数据到一个或多个从服务器,可以在主服务器出现故障时快速切换,保证服务连续性。主从复制的过程包括设置复制拓扑、配置主从关系、同步数据以及监控复制状态。此外...
本文主要探讨了在RedHat9.0操作系统上搭建MySQL服务器集群的方法以及应对主从服务器故障的解决方案。 首先,搭建服务器集群能有效分摊系统负载,提高服务的可靠性和用户访问的正常性。当网络流量突然增大导致链路...
- **Linux环境下的安装**:文中提到了MariaDB的安装是在Linux环境下,具体是在RedHat 7版本上进行。 - **停止MariaDB服务**:使用命令`systemctl stop mariadb`来停止MariaDB服务。 - **卸载MariaDB**: - 使用...
3. 定期备份:除了实时的主从复制,还需要定期进行全量备份,以防数据丢失或损坏。 总的来说,MySQL数据库双机热备服务器配置是一个涉及多个层面的复杂过程,需要综合考虑硬件、操作系统、网络、数据库以及管理软件...
确保两台服务器(假设为服务器A和服务器B)的操作系统一致,本例中为RedHat Linux 5.5 64位,且两台服务器的MySQL版本相同,此处为5.1.35。两台服务器的IP地址分别为172.26.1.68和172.26.1.69。所有基础软件已安装...
MySQL主从同步提供了数据的安全性和高可用性。然而,这只是一个基本的配置,实际环境中可能需要考虑更多因素,如错误处理、性能优化、多主复制、半同步复制等。此外,定期检查和维护复制配置是确保数据一致性的重要...
- 实现MySQL主从同步,进行读写分离,优化参数,处理增量恢复、权限管理、备份恢复等数据库管理任务。 6. **系统调优**: - 对系统级和应用级参数进行调优,如修改sysctl.conf配置文件和net.ipv4参数,提升系统...
1. **pt-online-schema-change**:这个工具允许你在不停止MySQL服务的情况下进行表结构的修改,如添加、删除或修改列,以及更改索引。这对于大型生产环境来说是非常重要的,因为它避免了因维护操作而导致的服务中断...
Percona Toolkit是一款强大的开源工具集,专为MySQL和其分支如MariaDB等数据库管理系统设计,旨在提供高级管理和维护功能。这个3.2.1-1.el7.x86_64.rpm版本是针对Red Hat Enterprise Linux 7 (RHEL 7)的64位平台优化...
5. **数据库管理**:他对MySQL和Oracle数据库有深入理解,能进行存储、库和表设计,使用SQL,还了解性能优化策略,如mysqldump+binlog和lvm+binlog备份,以及主从复制和读写分离。 6. **监控工具**:他熟练使用...