笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
MySQL 主从同步停了,Slave_IO_Running 或 SQL_Running 变 No:一步步修而不是直接跳过
MySQL 主从复制突然停了,SHOW SLAVE STATUS\G 看到 Slave_IO_Running: No 或 Slave_SQL_Running: No,从库数据落后于主库。最忌讳的是不看错误原因直接 SET GLOBAL sql_slave_skip_counter = 1 或 STOP SLAVE; START SLAVE 强行跳过——这样会静默丢数据,跳过去的那条可能正是关键更新。
正确排查顺序:
STOP SLAVE;
SHOW SLAVE STATUS\G
先看两个 Running 和对应的 Last_ 字段,不同的 No 原因完全不同:
情况一:Slave_IO_Running: No,Last_IO_Error 有内容
IO 线程负责从主库拉 binlog。常见错误:
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index'→ 从库要的 binlog 文件在主库已经被清掉了(主库 binlog 过期删除),或者 CHANGE MASTER 指定的文件名/位置不对。这时从库落后太远,binlog 被 purge,只能重新全量同步。Got fatal error 1236 ... 'Client requested master to start replication from impossible position'→ 同样是指定位置不存在,多半是 relay log 或 position 错乱。- 网络/认证类错误 → 主库从库之间连不上,或复制账号密码被改。
情况二:Slave_SQL_Running: No,Last_SQL_Error 有内容
SQL 线程负责执行 relay log 里的语句。最常见的错误是主库上能执行成功的语句,在从库上执行失败,典型:
Duplicate entry 'xxx' for key 'PRIMARY'→ 从库上已经有一条相同主键的数据,通常是从库之前被手动改过,或重复同步。Can't find record in ...(update/delete 找不到行)→ 从库缺了这条数据,也可能是被手动改过。- 表结构不一致 → 主库改了表结构但从库没同步过去(DDL 没走复制)。
针对 SQL 线程错误,正确修法不是跳过,是看错误定位是哪条:
SHOW SLAVE STATUS\G # 看 Last_SQL_Error 和 Relay_Master_Log_File / Exec_Master_Log_Pos
如果错误明确是"从库被手动改过导致冲突",先修从库数据(补上/删掉那条),再 START SLAVE。只有确认那条语句确实不需要执行(比如确实是要跳过的历史脏数据),才考虑 SET GLOBAL sql_slave_skip_counter = 1,而且是一次跳一条,不是无脑跳过。
如果从库落后太多 / 数据已不可信,直接重建从库最干净:
STOP SLAVE;
# 在主库备份(用 --single-transaction --master-data=2 记录 binlog 位置)
mysqldump -u root -p --single-transaction --master-data=2 全库 > full.sql
# 在从库恢复后重新 CHANGE MASTER 到备份记录的位置
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000123', MASTER_LOG_POS=456789;
START SLAVE;
SHOW SLAVE STATUS\G # 确认两个 Running 都是 Yes,Seconds_Behind_Master 归零
总结:从库停了先 SHOW SLAVE STATUS 读清楚是 IO 还是 SQL 线程挂、错误信息是什么。IO 线程挂多因 binlog 被清/位置不对要重建;SQL 线程挂多是主从数据/结构不一致要先修数据。跳过机制是最后手段,别让它成为默认操作。