PHP项目突发MySQL连接异常:未知数据库‘cms’报错求助
嘿,这种之前正常突然报错的情况确实闹心,我来给你捋几个大概率能解决的排查方向:
先确认数据库真的存在
直接登录你的MySQL服务(用命令行、phpMyAdmin或者Navicat这类工具都行),执行SHOW DATABASES;命令,仔细看结果里有没有cms这个库。特别注意大小写——Windows系统下MySQL默认不区分数据库名大小写,但如果是Linux环境或者你手动改了lower_case_table_names配置,大小写不匹配就会报这个错。检查连接代码的拼写细节
别忽略最基础的拼写错误!打开你的header.php文件,找到mysqli连接的代码,比如类似这样的:$db = new mysqli('localhost', 'your_username', 'your_password', 'cms');仔细核对第四个参数(数据库名)是不是完全正确,有没有多打空格、少写字母,比如会不会写成了
cm或者cms(末尾有空格)。排查数据库用户权限
虽然之前能正常连接,但说不定用户权限被误改了。用你项目里的数据库账号登录MySQL,执行SHOW GRANTS FOR 'your_username'@'localhost';(把your_username换成实际账号),看看结果里有没有类似GRANT ALL PRIVILEGES ONcms.* TO 'your_username'@'localhost';的权限条目,如果没有,那就是用户被收回了访问cms库的权限,重新给权限就行。检查MySQL服务和数据目录
最近有没有重启过MySQL服务?或者服务器/本地环境有没有更新?可以去MySQL的数据存储目录(一般是安装目录下的data文件夹)看看,有没有cms对应的子文件夹,里面有没有.frm、.ibd这类数据库文件。如果文件夹没了,那大概率是数据库被误删除了,得找备份恢复。排查项目环境变动
你的项目路径里有空格和特殊字符(比如INFX2670 - Serverside Scripting),虽然一般不影响,但如果最近移动过项目文件夹、更新了本地的PHP环境(比如XAMPP/WAMP),可能导致mysqli的配置或者环境变量出问题,试试把项目移到一个路径简单的文件夹(比如C:\Projects\A5)再测试。
内容的提问来源于stack exchange,提问作者Stan




