我的知识记录

MySQL数据库忘记root密码重置方法与常见问题处理_MySQL_MariaDB_数据库运维

数据库的配置网上能搜到很多,但质量参差不齐。有些写法过时了,有些只适用于特定版本。这篇文章基于当前主流环境验证,给出的配置和命令都经过实际测试,复制就能用。

数据库连接失败是站点最常见的故障之一。页面打开提示数据库连接错误,或者后台操作时报SQL错误。原因通常集中在数据库服务未启动、账号密码错误、权限不足、连接数满这几个方面。

一步步来,先做什么再做什么都写清楚。

数据库连接超时先看wait_timeout参数。show variables like 'wait_timeout',默认8小时,连接闲置超过这个时间会被断开。PHP长连接或者连接池配置不当会用到已断开的连接,报MySQL server has gone away。调大wait_timeout或者用连接池检测。

连接数满了报Too many connections。show variables like 'max_connections'看上限,show processlist看当前连接。临时解决是kill空闲连接,长期解决是调大max_connections或者优化程序释放连接。连接数不是越大越好,要根据服务器内存调整。

表损坏用CHECK TABLE和REPAIR TABLE。MyISAM引擎容易损坏,InnoDB一般不会。myisamchk命令行修复更快,myisamchk -r tablename.MYI。修复前先备份表文件,修复失败还能恢复。频繁损坏说明磁盘有问题或者服务器异常断电。

字符集乱码统一用utf8mb4。创建数据库指定DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,表和字段也用utf8mb4。PHP连接后执行SET NAMES utf8mb4。已经是gbk的数据要先导出转码再导入,直接改字符集会乱码。

几个容易踩坑的地方提前说一下。

SSL证书快到期前续期。Let's Encrypt 90天有效期,配置自动续期但要定期检查是否成功。付费证书1年有效期,到期前1个月申请新证书更换。证书过期浏览器提示不安全,用户看到警告就会离开,影响流量和转化。

网站被黑后不要只清后门不修漏洞。清理完恶意代码一定要找入侵入口,弱密码就改密码,上传漏洞就限制上传,CMS漏洞就升级版本。不修补漏洞清除了还会被再次入侵,而且攻击者可能留了多个后门。

表单和用户输入要做验证和过滤。前端验证提升体验,后端验证保证安全,前端可以绕过所以后端必须做。SQL用参数化查询防注入,输出用htmlspecialchars防XSS,上传文件校验类型和大小并重命名。

常见的几个疑问集中回答一下。

问:操作后网站打不开了怎么办?答:先看是502、404还是超时,根据状态码排查方向。502查PHP-FPM,404查伪静态和根目录,超时查服务器负载和网络。有备份直接回滚到操作前状态,最快恢复。

问:HTTPS和HTTP哪个对SEO更好?答:HTTPS更好,百度明确表示优先收录HTTPS页面,HTTPS是排名因素之一。现在SSL证书有免费的Let's Encrypt,配置成本很低,所有网站都应该启用HTTPS。切换时做好301跳转,把权重传递过去。

最后提醒一句,任何服务器操作前先备份。站点数据无价,备份是最低成本的保险。操作完做一轮全面测试,前台后台、PC端移动端都过一遍,确认没问题才算真正完成。有异常及时回滚,不要硬撑。

MySQL数据库忘记root密码重置方法与常见问题处理_MySQL_MariaDB_数据库运维

标签:

更新时间:2026-09-03 16:27:02

上一篇:文件访问时间能改吗_更改atime属性_windows和linux

下一篇:微信4个微信不封号方法_虚拟机_Win10 LTSC_消息隔离实测