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

Godot连接MariaDB无报错,但connection_instance返回null求助

解决Godot中MariaDB连接实例返回Null的问题

核心问题分析

你代码里的关键错误是误用了MariaDBConnector.connection_instance()静态方法:这个方法的作用是获取已经通过connect_db成功建立连接的全局实例,但你手动创建db_general实例并调用连接方法后,却试图通过传入MariaDBConnectContext来获取新实例,完全不符合该方法的设计逻辑,最终导致返回Null。

另外,移除密码后返回错误码59,是因为你的数据库用户配置要求必须提供密码认证,空密码不符合用户权限规则,插件抛出了认证失败类的错误(不同插件版本的错误码映射略有差异,但核心原因是认证参数不合法)。

修复步骤

  1. 直接使用已连接的实例
    你已经通过db_general.connect_db()完成了连接(且无报错),直接使用这个实例即可,不需要再调用connection_instance()。修改_ready函数如下:
func _ready() -> void:
    db_general = MariaDBConnector.new() 
    _connect_to_db_srvr(_auth_type,"dse_general", db_general) 
    # 直接使用已连接的db_general实例,无需再创建context获取
    if db_general.is_connected():
        print("连接成功!")
    else:
        print("连接未建立!")
  1. 验证参数一致性
    检查general_ed中的db_name是否和传入_connect_to_db_srvr的"dse_general"一致,如果不一致,会导致连接的数据库和期望不符,后续操作可能出错。

  2. 错误码59的处理
    不要尝试移除密码,确保general_ed["db_plain_text_pwd"]的值和数据库用户的密码完全匹配。如果需要无密码连接,必须先在MariaDB中配置允许该用户无密码登录(不推荐生产环境使用)。

额外检查项

  • 确认MariaDB服务正在本地运行,端口号和general_ed["db_port"]一致(默认3306)
  • 检查数据库用户是否有权限从本地(localhost/127.0.0.1)登录
  • 确保Godot使用的MariaDBConnector插件版本和本地MariaDB服务器版本兼容(推荐使用同大版本号,如10.5.x对应插件的10.5分支)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:19:53