先说情况,我是纯新手,这两天照着教程装了一份 PHP 源码,环境是宝塔 + Nginx + MySQL 5.7 + PHP 7.4,系统是 Ubuntu。
源码传上去了,域名也能访问,但是一打开就报:数据库连接失败。后台进不去,前台也是这个提示。已经卡了两天,把能试的都试了,来求个思路。
我的配置长这样
源码里那个数据库配置文件,我改成了这样(密码打码了):
'DB_HOST' => 'localhost',
'DB_NAME' => 'mysite',
'DB_USER' => 'mysite',
'DB_PWD' => '******',
'DB_PORT' => '3306',
宝塔里我确实建了一个叫 mysite 的库,用户名也是 mysite,密码是复制粘贴进去的,应该没打错。
已经试过的办法
- 数据库名、用户名、密码重新核对了三遍,还重新建了一次库
- 把
localhost换成127.0.0.1试过,还是不行 - 在 phpMyAdmin 里用这个账号能正常登录,说明账号本身没坏
- 重启过 MySQL,也重启过 PHP
- 把文件权限全改成 777 试过一次,没变化(已经改回来了)
我现在怀疑的方向
有朋友提醒我说可能是 MySQL 8.0 的认证方式问题,但我装的明明是 5.7,应该不是这个。还有人说要看配置文件的编码,我是用宝塔在线编辑器改的,应该不会乱码吧?
想请教大家的
- 像这种「phpMyAdmin 能登、源码连不上」,一般卡在哪一步?
- 有没有办法能看到更详细的报错,我现在就一句「数据库连接失败」,什么线索都没有
- 有没有什么排查顺序,能一步步缩小范围的
先谢过各位大佬,我真的是查了两天资料,越查越乱。如果有类似经历的,麻烦讲讲当时是怎么定位的,感激不尽。
我上次卡了两天,最后发现是 MySQL 服务没启动,建议先看一眼服务状态
也可能是库压根没建,很多源码包不带 sql,得自己导进去
报错信息方便贴一下吗?不同报错方向完全不一样
还有一种可能是地址写了 127.0.0.1,但你是远程连的,得换成服务器 IP
先看配置文件的数据库密码和宝塔里建库时设的是不是一致,大小写也别放过