Android Studio中JDBC连接MySQL报错:Could not create connection to database server
解决Android Studio中JDBC连接MySQL失败的问题
先修正你代码里的语法错误:DriverManager.getConnection调用语句末尾缺少闭合括号,正确写法如下:
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/achat","root","");
接下来逐一排查核心问题:
1. 配置网络权限
在AndroidManifest.xml的<manifest>标签内添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
2. 调整MySQL服务器配置
- 修改MySQL配置文件(Windows为
my.ini,Linux为my.cnf),将bind-address设置为0.0.0.0(允许所有IP访问)或你的电脑局域网IP,修改后重启MySQL服务。 - 开放电脑防火墙的3306端口,允许外部设备访问。
- 给MySQL的
root账号授权远程访问,在MySQL客户端执行:
GRANT ALL PRIVILEGES ON achat.* TO 'root'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;
(若密码为空则留空,但空密码不建议用于正式环境)
3. 更新JDBC驱动与连接URL
- 旧的
com.mysql.jdbc.Driver已过时,替换为com.mysql.cj.jdbc.Driver,并在app模块的build.gradle中添加兼容驱动依赖:
implementation 'mysql:mysql-connector-java:8.0.33'
- 连接URL需添加时区参数避免报错,同时将
localhost替换为你的电脑局域网IP(如192.168.1.100),示例:
con = DriverManager.getConnection("jdbc:mysql://192.168.1.100:3306/achat?serverTimezone=Asia/Shanghai&useSSL=false","root","");
4. 重要建议
Android直接通过JDBC连接MySQL存在安全隐患(数据库账号密码易泄露),且移动网络环境下稳定性差。建议搭建后端接口(如Spring Boot、PHP服务),Android通过HTTP请求调用接口操作数据库,这是更规范、安全的开发方式。
内容的提问来源于stack exchange,提问作者You Kookie
相关产品推荐
相关产品推荐

