mysql-connector-java-5.1.49.jar
)。/var/lib/mysql/
),与安卓连接无关。配置项 | 说明 |
---|---|
修改my.cnf | 添加bind-address = 0.0.0.0 ,允许所有IP访问(生产环境需限制特定IP)。 |
用户权限 | 执行SQL:GRANT ALL PRIVILEGES ON . TO 'username'@'%' IDENTIFIED BY 'password'; |
防火墙设置 | 开放MySQL默认端口3306 (Windows需关闭防火墙或添加规则)。 |
// 1. 添加依赖(需将JDBC驱动放入`libs`目录) implementation files('libs/mysql-connector-java-5.1.49.jar') // 2. 连接代码(需异步处理,避免阻塞主线程) new Thread(() -> { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://192.168.1.100:3306/database_name"; // 服务器IP+端口 Connection conn = DriverManager.getConnection(url, "username", "password"); // 执行SQL操作... conn.close(); } catch (Exception e) { e.printStackTrace(); } }).start();
问题 | 解决方案 |
---|---|
连接超时 | 检查服务器IP、端口是否正确;确认防火墙未拦截。 |
MalformedURLException | 使用jdbc:mysql:// 协议,而非http:// 。 |
中文乱码 | 在URL后添加参数:?useUnicode=true&characterEncoding=UTF-8 。 |
解答:
不推荐直接暴露MySQL到公网,存在SQL注入、密码泄露风险,建议通过Web服务(如Spring Boot)作为中间层,提供REST API供安卓调用,由服务器处理数据库交互。
解答:
168.1.100
);