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

Android Studio项目连接MySQL数据库服务器失败求助

解决Android Studio连接本地MySQL失败的问题

针对你遇到的java.sql.SQLNonTransientConnectionException: Could not create connection to database server错误,结合纯Java环境可正常连接、Android环境失败的情况,按以下步骤排查修复:

1. 修正MySQL用户权限

你创建的用户'myusr'@'localhost'仅允许从物理机本地登录,但Android模拟器通过10.0.2.2访问物理机MySQL属于远程连接,会被权限拦截。执行以下SQL调整权限:

-- 创建允许从任意地址访问的用户(或指定10.0.2.2更安全)
CREATE USER 'myusr'@'%' IDENTIFIED BY 'mypass';
-- 授权该用户访问mydatabase的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myusr'@'%';
FLUSH PRIVILEGES;

2. 调整MySQL绑定地址

默认MySQL的bind-address配置为127.0.0.1,仅允许本地访问,模拟器无法连接。修改MySQL配置文件:

  • Windows:找到my.ini(通常在C:\ProgramData\MySQL\MySQL Server X.X)
  • Linux/macOS:找到my.cnf(通常在/etc/mysql/)

将bind-address修改为:

bind-address = 0.0.0.0

重启MySQL服务生效。

3. 添加Android网络权限

在AndroidManifest.xml的<manifest>标签内添加网络权限,否则APP无法发起网络请求:

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

4. 避免主线程执行网络操作

Android从API 23开始禁止主线程执行网络操作,你的connect()方法在按钮点击事件(主线程)中调用,即使连接成功也会触发异常。改用异步线程执行:

show.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        CompletableFuture.runAsync(() -> {
            try {
                Connection conn = connect();
                runOnUiThread(() -> text.setText("连接成功"));
                conn.close();
            } catch (SQLException e) {
                runOnUiThread(() -> errorText.setText(e.getMessage()));
                e.printStackTrace();
            }
        });
    }
});

5. 适配MySQL JDBC驱动版本

Android对高版本MySQL JDBC驱动(如8.x)兼容性较差,建议使用5.1.x版本。在app/build.gradle的dependencies中添加:

implementation 'mysql:mysql-connector-java:5.1.49'

若坚持使用8.x版本,需额外配置驱动类及时区:

// 在connect()方法开头添加
Class.forName("com.mysql.cj.jdbc.Driver");
// 修改URL
String url = "jdbc:mysql://10.0.2.2:3306/mydatabase?serverTimezone=UTC";

6. 检查主机防火墙设置

确保物理机防火墙允许3306端口的入站连接,否则模拟器无法访问物理机的MySQL服务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:17:31