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

MAUI移动端无法连接远程MySQL,Windows调试正常求助

问题解决思路

核心原因

移动设备(Android)连接未加密的MySQL服务器时,MySqlConnector默认启用了SSL认证检查,而服务器未配置SSL,导致认证失败;Windows环境下因系统SSL策略或组件默认行为差异,可正常连接。

解决方案

1. 禁用SSL验证

修改ConnectToDatabase方法中的连接字符串构建器,强制不使用SSL:

var builder = new MySqlConnectionStringBuilder
{
    Server = dbServer,
    Database = dbName,
    UserID = dbUser,
    Password = dbPassword,
    SslMode = MySqlSslMode.None // 添加此行禁用SSL检查
};

2. 配置Android网络权限

在MAUI项目的Platforms/Android/AndroidManifest.xml中添加必要网络权限,确保应用能建立网络连接:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3. 修复SQL注入漏洞

当前代码直接拼接用户名到SQL语句,存在严重安全风险,改为参数化查询:

public static bool VerifyLogin(string username, string password)
{
    string pwd = string.Empty;
    if (connection == null)
    {
        ConnectToDatabase();
    }
    var command = connection.CreateCommand();
    // 使用参数化查询避免注入
    command.CommandText = "SELECT password FROM user WHERE username = @username;";
    command.Parameters.AddWithValue("@username", username);

    var reader = command.ExecuteReader();

    while (reader.Read())
    {
        pwd = reader["password"].ToString();
        return password == pwd;
    }
    return false;
}

4. 额外排查项

  • 确认远程MySQL服务器防火墙允许移动设备IP访问3306端口
  • 测试移动设备网络是否能正常连通服务器IP(可通过ping、telnet工具检测3306端口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:22:48