You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi连接远程MySQL数据库遇权限拒绝错误求助

Strapi连接远程MySQL权限拒绝错误解决方法

错误信息:

Error: Access denied for user 'pool18'@'192.168.105.3' (using password: YES)                         
│   at Packet.asError                                                                                     
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\packets\packet.js:738:17)    
│   at ClientHandshake.execute                                                                            
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\commands\command.js:29:26)   
│   at Connection.handlePacket                                                                            
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\connection.js:481:34)        
│   at PacketParser.onPacket                                                                              
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\connection.js:97:12)         
│   at PacketParser.executeStart                                                                          
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\packet_parser.js:75:16)      
│   at Socket.<anonymous>                                                                                 
│   (C:\Users\Somji\workspace\2024\skymet_strapi_new\node_modules\mysql2\lib\connection.js:104:25)        
│   at Socket.emit (node:events:519:28)                                                                   
│   at Socket.emit (node:domain:488:12)                                                                   
│   at addChunk (node:internal/streams/readable:559:12)                                                   
│   at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)  

解决步骤:

  • 验证MySQL用户权限
    登录远程MySQL服务器,执行以下SQL命令给pool18用户授权:

    -- 授予指定IP访问目标数据库的权限
    GRANT ALL PRIVILEGES ON 你的数据库名.* TO 'pool18'@'192.168.105.3' IDENTIFIED BY '你的数据库密码';
    -- 刷新权限使设置生效
    FLUSH PRIVILEGES;
    

    注意:替换命令中的你的数据库名和你的数据库密码为实际值,生产环境不建议用*.*授权所有数据库

  • 检查Strapi数据库配置
    打开项目根目录下的config/database.js(生产环境可能在config/env/production/database.js),确认配置参数正确:

    module.exports = ({ env }) => ({
      connection: {
        client: 'mysql',
        connection: {
          host: '远程MySQL服务器IP',
          port: 3306, // 远程MySQL端口,默认3306,若修改过需对应
          database: '你的数据库名',
          user: 'pool18',
          password: '你的数据库密码',
          ssl: false, // 若远程MySQL未开启SSL,保持false
        },
      },
    });
    

    重点核对host、user、password三个参数,确保和MySQL授权的一致。

  • 检查远程服务器防火墙/安全组

    • 确认远程MySQL服务器的防火墙(如ufw、iptables)允许192.168.105.3访问3306端口;
    • 若使用云服务器,检查安全组规则,添加入站规则开放3306端口给你的客户端IP。
  • 测试基础连接
    用MySQL客户端直接测试连接,排除Strapi本身的问题:

    mysql -h 远程MySQL服务器IP -u pool18 -p
    

    输入密码后如果能成功登录,说明网络和MySQL权限没问题,再回头检查Strapi配置;如果登录失败,优先排查MySQL权限和网络问题。

内容的提问来源于stack exchange,提问作者somji katiyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:36:08