mysql数据库丢库记

2021/1/29 记
环境: Windows10 ,mysql5.6,Navicat12
原因: 电脑突然关机,启动后通过Navicat连接发现少了一个库,让人无比迷茫(为啥会出现丢库现象)
解决方案: 无比庆幸的是在几个小时之前,我对丢失的库做过一次备份. 通过全盘搜索我数据库名字的文件,发现备份文件还存在. 直接在建一个和之前数据库名字一样的库,打开发现表是没有的,但是有备份文件在这个新建的库中,直接恢复备份,欧克!(对于没有备份的同学,深感同情.)

感悟: 数据库一定要备份,而且要勤。诸君共勉!!!

### MySQL 主从复制配置 #### 配置主节点 为了实现MySQL的主从复制,首先需要配置主节点。这涉及到修改`my.cnf`文件中的设置来启用二进制日志并指定唯一的服务器ID。 ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-format=MIXED ``` 上述配置启用了二进制日志功能,并设置了服务器ID为1[^3]。此外,通过设定`binlog-format`参数可以选择复制的方式,默认是混合模式(Mixed-mode Replication)[^1]。 #### 备份主节点数据 完成主节点的基础配置之后,需创建一份完整的数据库快照用于初始化从节点。可以利用`mysqldump`工具导出整个数据库: ```bash mysqldump --all-databases --master-data > backup.sql ``` 此命令不仅会转储所有的表结构和数据,还会自动录当前二进制日志的位置信息以便后续同步使用。 #### 同步至从节点 将生成好的SQL脚本传输给目标机器上的从节点,并导入其中: ```sql mysql < /path/to/backup.sql ``` 接着调整从节点的相关配置项以匹配其角色需求——同样编辑`my.cnf`文件赋予不同于主节点的新ID号以及指向远程主机的信息。 ```ini [mysqld] server-id=2 relay-log=mysql-relay-bin read-only=ON ``` 这里设定了读取只限权限(read-only),防止意外写入破坏一致性;同时指明了继电器日志(relay log)路径方便追踪变更历史。 ### MySQL 主从复制原理 MySQL 的主从复制机制依赖于二进制日志(Binary Log)来跟踪发生在主服务器上的所有更改事件。每当有新的事务提交成功后,相应的更新会被追加到该文件内形成一系列的操作指令集。随后这些录被传递给一个或多个订阅者(即所谓的“从”实例), 它们负责重放相同的动作从而保持与源头一致的状态。 具体来说存在三种不同的复制策略可供选择:基于行(Row-Based Replication,RBR)、基于语句(Statement-Based Replication,SBR) 和混合型(Mixed Mode Replication,MMR) 。前两者分别侧重于精确反映单条录级别的变动或是概括性的SQL表达式描述整体行为特征;而后者则综合考虑两方面优势动态切换最合适的方案应用场合。 对于SBR而言,尽管占用资源相对较少却难以确保跨平台移植性和复杂查询场景下的准确性;相反地,RBR虽然消耗更多存储空间但提供了更高的可靠性和可维护性特性[^2]。 ### 故障排查方法论 当遇到诸如“Got fatal error 1236 from master”的错误提示时,意味着从尝试获取不存在的日志文件(`mysql-bin.000004`) ,然而实际上主仅存最早的几个版本(`mysql-bin.000001`) [^4]。这类问题往往源于时间差造成的不兼容状况或者是网络连接不稳定引起的包现象。 针对这种情况建议采取如下措施加以修复: - **重新建立初始状态** :停止现有进程链路关系,按照前述步骤再次执行全量迁移过程; - **手动修正偏移量** : 如果确认丢失部分不影响全局完整性,则可以在Slave端强制跳过特定位置继续追赶进度; ```sql STOP SLAVE; CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=<适当数值>; START SLAVE; ``` 以上操作能够帮助恢复正常的运作秩序,不过务必谨慎行事以免引发更大范围内的异常波动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微一笑满城空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值