当前位置:首页 >  热门标签 >  mysql

mysql

网站某栏目突然打不开,日志里刷Tableismarkedascrashed,或者MySQL莫名重启后某张表查一下就断连——表损坏来了。动手修之前必须先搞清楚一件事:出问题的是MyISAM表还是InnoDB表,两者修法完全不同,用错方法轻则无效,重则把还能救的数据弄没。SHOWTABLESTATUS看一眼Engine列,第一步就定方向。先讲清楚“表为什么会坏”:写入写到一半断电或被强杀、磁盘坏道、硬

阅读全文

与“mysql”的相关热搜词:

  • MySQL 表损坏修复:MyISAM 和 InnoDB 是两套完全不同的打法
    网站某栏目突然打不开,日志里刷Tableismarkedascrashed,或者MySQL莫名重启后某张表查一下就断连——表损坏来了。动手修之前必须先搞清楚一件事:出问题的是MyISAM表还是InnoDB表,两者修法完全不同,用错方法轻则无效,重则把还能救的数据弄没。SHOWTABLESTATUS看
    2026-09-08 10:38
  • MySQL 1040 Too many connections:连接泄漏定位与上限设定
    网站隔三差五报一句数据库连接失败,刷新两下又好了。这种时好时坏的毛病最烦人,因为它不像宕机那样干脆,你没法守在屏幕前等它出现。等到真去查的时候,现场早没了。MySQL从5.7起max_connections默认就是151,8.0也沿用了这个值。超过之后新连接直接被拒,报ERROR1040。看到这个错
  • EXPLAIN结果看不懂?丢给AI要索引优化建议,人工确认再落地
    页面打开慢,查出来是某个SQL拖了后腿。你对MySQL有点基础,知道要看EXPLAIN,但type一列写着ALL,rows几万行,Extra里还有个Usingfilesort——认识每个词,就是不知道从哪下手改。这种时候,AI是个好参谋,但记住它只是参谋,拍板还得你自己来。第一步把证据收集齐:慢SQ
    2026-09-01 11:28
  • LIMIT 100000,20慢到超时?MySQL深分页的三种解法
    后台导出、爬虫采集、或者用户把列表翻到几千页——只要LIMIT的偏移量上了十万,查询就会肉眼可见地卡。很多人以为是数据太多撑不住,其实是MySQL的工作方式太老实:LIMIT100000,20的意思是把前100020行都取出来,扔掉前100000行,只返回20行。偏移量越大,白干的活越多。先复现确认
    2026-08-31 09:09
  • 千万级大表加索引不敢动?Online DDL和pt-online-schema-change实测
    大表加索引是站长的经典恐惧:ALTERTABLE一执行,表被锁住,网站瞬间打不开,KILL掉还要回滚几小时。以前确实是这样,MySQL5.6之后OnlineDDL成熟了,加索引这类操作可以在线做,执行期间允许并发读写。但“可以在线”不等于“随便什么时候都行”,坑还是有的。OnlineDDL的原理:操
    2026-08-31 09:07
  • 读多写少的站,主从复制加读写分离,一台变三台
    资讯类、内容站的流量特点很一致:读请求是写请求的几十上百倍。一台MySQL扛不住时,主从复制把读压力分给从库,主库专心写,是最省钱的扩容路径——不用换机器、不用改表结构,加从库就行。前提是主从复制先搭好(这个之前写过:主库开binlog、建同步账号,从库CHANGEMASTERTO)。复制跑通后,剩
    2026-08-31 09:04
  • 容器删了数据就没了?Docker卷的备份恢复,别等出事才想起来
    用Docker跑MySQL的站长,最该问自己的一个问题:数据库文件现在能被备份脚本摸到吗?数据在卷(volume)里,如果卷是匿名卷、或者备份脚本只tar了网站目录,那数据库其实处于裸奔状态,容器一坏就只能恢复到上次手动导出的时点。先搞清楚自己的数据在哪。Docker存数据两种方式:bindmoun
    2026-08-31 09:00
  • 用户昵称带个表情就存不进去?MySQL utf8 转 utf8mb4 完整迁移方案
    用户注册昵称是表情符,提交后昵称变成空白,或者干脆报错Incorrectstringvalue。这是MySQL老utf8的锅:它的utf8实现最多三个字节,而emoji和部分生僻字是四字节字符,塞不进去。真正的完整UTF-8在MySQL里叫utf8mb4,mb4就是mostbytes4。迁移分四层:
    2026-08-28 15:00
  • 数据库备份脚本只会 dump 一把梭?这份定时备份方案能救命
    问过不少站长:有备份吗?答有,拷过一份。再问什么时候拷的?去年。这种备份等于没有。数据库备份要做到三条:自动化、异地存、定期演练恢复。三条都不难,一个脚本加一条cron全搞定。先说dump命令怎么写才对。默认参数导出的文件恢复时容易出问题,这几个参数建议照抄:mysqldump-uroot-p'密码
    2026-08-28 14:48
  • 一台数据库扛不住了?MySQL 主从复制搭建实录,附跳坑指南
    站点流量上来后,读写全压在一台MySQL上,页面越来越慢,更闹心的是没备份没冗余,机器一挂全站完蛋。主从复制是数据库水平扩展的第一步:主库写、从库读,顺便从库就是一台热备。原理不难,就是主库把变更写进binlog,从库拉回来重放。第一步,主库开binlog并建复制账号:#主库my.cnf[mysql
    2026-08-28 14:40
  • 表越删越慢?OPTIMIZE TABLE回收空间实录
    日志表每天删几十万行,文件却一点没变小,查询还越来越慢。这不是玄学,是InnoDB的机制:删除的数据只是打标记,空间留在文件里复用,但反复增删后数据页变得稀碎,扫描效率下降。碎到一定程度就得整理。先看碎片率再动手,information_schema里直接查。SELECTtable_name,ROU
    2026-08-27 17:15
  • 网站突然连不上数据库?SHOW PROCESSLIST排查实录
    页面集体报数据库连接失败,重启MySQL能救急,但过几小时又犯。这种病根基本是连接堆积:请求速度超过消化速度,连接数堆到max_connections上限,新连接全被拒。排查工具就是一条SQL。SHOWPROCESSLIST;--输出关键列:Id、User、Host、db、Command、Time、
    2026-08-27 15:58
  • MySQL索引为什么不生效:六个写法让EXPLAIN当场现形
    明明建了索引,查询还是全表扫描,几百万行的表一查十几秒。索引失效多数不是索引的问题,是SQL写法的问题。别猜,EXPLAIN一下,type列是不是ALL、key列是不是NULL,一目了然。EXPLAINSELECT*FROMordersWHEREDATE(create_time)='2026-08-
    2026-08-27 15:22
  • 网站数据自动备份:一个脚本+一个计划任务搞定
    网站备份是出事之后最后悔没做的东西。很多人服务器被黑后才发现数据库没备份,几年的内容一夜归零。其实一个shell脚本加一个定时任务就能解决。下面这个脚本同时备份MySQL数据库和网站源码,按日期命名,保留最近7天。Linux服务器直接放到/root/backup.sh,Windows可以改成Powe
    2026-08-25 18:06
  • MySQL慢查询定位三板斧:慢日志+EXPLAIN+索引
    网站卡顿不一定是代码慢,很可能是数据库在硬扛。MySQL慢查询日志是最直接的突破口,先把执行时间长的SQL抓出来,再一条条用EXPLAIN看执行计划,最后加索引或者改写法。开启慢日志很简单,在my.cnf里加三行,重启MySQL即可。注意long_query_time单位是秒,线上可以先设1秒,抓到
    2026-08-25 16:19

信息推荐