冬樱 2026-03-02 16:27 采纳率: 0%
浏览 3

关于#php#的问题:登录主页显示数据库没有连接

打开公司主页后提示
1、[Warning] mysqli::mysqli(): (HY000/1045): Access denied for user 'ssuser378'@'localhost' (using password: YES)
2、[User Error] Uncaught SS_DatabaseException: Couldn't connect to MySQL database | Access denied for user 'ssuser378'@'localhost' (using password: YES)
3、[Warning] mysqli_close(): Couldn't fetch mysqli
然后我尝试在navicat上用提示的数据库名称登录该数据库,但是失败了,后面我用宝塔给出的数据库名称和密码登录,成功了。但是再登录主页还是显示以上3个内容。
然后我在宝塔里将mysql、thinkphp服务器都重启了,也核对过database,php里面的数据库名和密码,确认都和宝塔数据库模块提供的用户名和密码一直,但是再次打开主页还是提示一样的内容。该如何解决?

img

img

img

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-03-02 16:28
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    根据你描述的问题,登录主页时提示数据库连接失败,并给出了以下错误信息:

    1. [Warning] mysqli::mysqli(): (HY000/1045): Access denied for user 'ssuser378'@'localhost' (using password: YES)
    2. [User Error] Uncaught SS_DatabaseException: Couldn't connect to MySQL database | Access denied for user 'ssuser378'@'localhost' (using password: YES)
    3. [Warning] mysqli_close(): Couldn't fetch mysqli

    这表明 PHP 应用程序尝试连接 MySQL 数据库时,使用的用户名或密码不正确。虽然你在 Navicat 上用 宝塔提供的数据库名和密码 能成功连接,但应用程序仍然报错,说明 配置文件中使用的数据库凭据与实际不符


    ✅ 问题分析

    1. 数据库用户权限问题

    • 错误信息显示用户 ssuser378 登录失败。
    • 可能是该用户在 MySQL 中没有权限访问目标数据库,或者密码错误。

    2. 配置文件中的数据库连接信息不一致

    • 你提到已核对过 database.php 或其他配置文件中的用户名、密码和数据库名,但可能还是存在:
      • 配置文件路径错误(例如使用了旧的配置)
      • 缓存未清除(如 PHP 缓存、OPcache、框架缓存等)

    3. 数据库用户权限设置问题

    • 宝塔可能创建了一个新的数据库用户(如 ssuser378),但该用户没有权限访问特定的数据库。

    🔧 解决方案

    第一步:确认数据库连接信息是否正确

    1. 检查你的 PHP 应用程序的数据库配置文件

    • 通常为 config/database.phpapp/config/database.phpenv.php.env 文件(如果是 Laravel 等框架)。
    • 查看以下字段:
      'username' => 'ssuser378',
      'password' => 'your_password',
      'database' => 'your_database_name',
      'host' => 'localhost'
      

    注意: 如果你使用的是宝塔面板,建议检查 网站根目录下的配置文件,而不是全局配置。

    2. 检查是否有多个配置文件

    • 有时项目中会有多个配置文件(如开发环境、生产环境),请确认你修改的是当前运行的配置文件

    第二步:验证数据库用户的权限

    1. 登录 MySQL 客户端

    • 使用宝塔提供的数据库用户名和密码登录 MySQL:
      mysql -u ssuser378 -p
      

      输入密码后进入 MySQL 命令行。

    2. 检查用户权限

    SHOW GRANTS FOR 'ssuser378'@'localhost';
    
    • 如果输出中没有 GRANT ALL PRIVILEGESSELECT, INSERT, UPDATE, DELETE 权限,说明需要授权。

    3. 授权用户访问数据库

    GRANT ALL PRIVILEGES ON your_database.* TO 'ssuser378'@'localhost';
    FLUSH PRIVILEGES;
    

    注意: 替换 your_database 为你实际的数据库名称。


    第三步:清除缓存

    1. 清除 PHP 缓存

    • 在宝塔面板中重启 PHP 服务。
    • 删除 runtime 目录(如果是 ThinkPHP 等框架):
      rm -rf /path/to/your/project/runtime/*
      

    2. 清除 OPcache(如果开启)

    • php.ini 中添加:
      opcache.reset=1
      
    • 重启 PHP 服务。

    第四步:测试数据库连接

    你可以编写一个简单的 PHP 测试脚本,验证是否能正常连接数据库:

    <?php
    $host = 'localhost';
    $username = 'ssuser378';
    $password = 'your_password';
    $database = 'your_database';
    
    $conn = new mysqli($host, $username, $password, $database);
    
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } else {
        echo "Connected successfully";
    }
    ?>
    

    将此脚本放在网站根目录下,访问它查看是否能正常连接。


    第五步:检查宝塔数据库用户配置

    如果你在宝塔中创建了数据库用户(如 ssuser378),请确保:

    • 用户有正确的权限(如 SELECT, INSERT, UPDATE, DELETE 等)。
    • 用户允许从 localhost 连接(即 Hostlocalhost%)。

    你可以在 宝塔 > 数据库 > MySQL 中查看用户权限。


    🛠️ 代码示例(以 ThinkPHP 为例)

    如果你使用的是 ThinkPHP,请检查 config/database.php 中的配置:

    return [
        'default' => 'mysql',
        'connections' => [
            'mysql' => [
                'type' => 'mysql',
                'hostname' => '127.0.0.1',
                'hostport' => '3306',
                'database' => 'your_database',
                'username' => 'ssuser378',
                'password' => 'your_password',
                'charset' => 'utf8mb4',
                'debug' => true,
            ],
        ],
    ];
    

    重点: 确保 usernamepassword 与宝塔中的一致。


    ✅ 最终建议

    1. 确认配置文件中数据库用户名、密码、数据库名与宝塔一致
    2. 检查数据库用户权限,确保其可以访问目标数据库
    3. 清除缓存并重启相关服务
    4. 使用简单脚本测试连接

    📌 总结

    | 问题原因 | 解决方法 | |---------|----------| | 数据库用户密码错误 | 核对配置文件,确保与宝塔一致 | | 数据库用户权限不足 | 使用 MySQL 授予相应权限 | | 缓存未清除 | 清除框架缓存、OPcache、重启 PHP | | 配置文件路径错误 | 确认正在使用的配置文件 |


    如有更多细节(如框架类型、具体配置文件内容),欢迎补充,我可以提供更具体的帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月2日