快速回滚mysql数据

快速回滚mysql数据

使用binlog快速回滚mysql数据

在日常使用mysql时,特殊是在开发环境,经常会有一些憨憨操作,手动去操作数据库,或者又删表导入等操作,除了运维备份mysql,也可以记录binlog的的一些信息,比如在手动操作前记录一下时间点和position,操作结束之后也分别记录一下,这样对于数据会更安全,在开发环境时也可以一波骚操作把数据库搞坏又快速回滚。

模拟操作

在各种蜜汁操作前,特殊是没有把握的操作,例如各种批量操作,结构更新,和手动执行一些sql时,如果操作失误比如没有加where等。会直接污染数据库

在操作前强烈建议备份或记录binlog,备份往往是全量的大文本数据,无论是导出还是导入都会导致速度比较慢很麻烦,而通过binlog可以快速回滚到指定状态。

记录时间点和position

开始记录

在执行sql脚本之前,记录当前的timepoint和position:

SET @start_time = NOW();
SELECT MASTER_POS_WAIT(NULL, 10);

结束记录

在执行sql脚本之后,记录结束的timepoint和position:

SET @end_time = NOW();
SELECT MASTER_POS_WAIT(NULL, 10);

回滚操作

如果出了错误或污染了数据,可以通过binlog回滚到数据刚被导入的状态。假设你已经记录了开始和结束的position。

mysqlbinlog --start-position=3775337 --skip-gtids --stop-position=6796448 mysql-bin.000013 | mysql -u root -p

通过这种方式,可以快速回滚到指定状态,避免数据污染。

Read more

LibreChat 集成 Stripe 支付的奶妈级教程

LibreChat 集成 Stripe 支付的奶妈级教程

我们假设你已经熟悉基本的 React 和 Node.js 开发,并且正在使用 LibreChat 的默认技术栈(React 前端、Node.js 后端、Vite 构建工具,可能还有 Electron 桌面应用)。教程会特别考虑 Electron 环境下的适配问题(例如 macOS 中文路径或路由错误)。“奶妈级”带你从零开始实现支付功能(包括一次性支付和添加高级会员订阅) 教程目标 * 在 LibreChat 中添加支付页面,支持用户通过信用卡付款。 * 实现 Stripe 的一次性支付功能。 * (可选)扩展到订阅功能,管理高级会员状态。 * 解决 Electron 环境下的常见问题(如路由和路径解析)。 * 生成可公开推送的 Markdown 教程,方便社区参考。 前提条件 在开始之前,请确保你已准备好以下内容:

By Ne0inhk
超棒的雅思资源!

超棒的雅思资源!

雅思真题材料地址: https://github.com/zeeklog/IETLS 感谢所有人。材料来自:@shah0150 & @kbtxwer * 超棒的雅思资源 * 雅思简介 * 听力 * 阅读 * 写作 * 口语 * 词汇 * 其他 * YouTube 频道 * [播客] (#podcasts) 雅思简介 * 什么是雅思 - 了解什么是雅思 听力 * 高级听力 * 雅思官方网站 * 考试英语 * 英国广播公司节目 * 乔治梅森大学口音学习网站 - 学习不同的口音 * 英国广播公司播客 * 英国文化协会听力练习 阅读 * 雅思提升阅读 写作 * 雅思提升写作 * 雅思从 6 分到 9 分 * 迷你雅思 口语 * Verbling 提供在线英语家教服务

By Ne0inhk