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

执行MySQL数据上传Java代码时遇UnknownHostException错误求助

解决MySQL连接时的UnknownHostException问题

看到你碰到的这个错误,第一反应就是连接URL里的IP地址藏了个小坑——你看报错信息里的IP前面带了个空格:" 192.168.0.110",这大概率就是导致解析失败的元凶!

下面给你几个一步步排查和解决的方法:

1. 先修正数据库连接URL的空格问题

先仔细检查你的连接URL,是不是IP地址前面不小心多打了空格?比如如果你的URL是类似这样的:

String dbUrl = "jdbc:mysql:// 192.168.0.110:3306/your_db?useSSL=false&serverTimezone=Asia/Shanghai";

赶紧把IP前面的空格删掉,改成:

String dbUrl = "jdbc:mysql://192.168.0.110:3306/your_db?useSSL=false&serverTimezone=Asia/Shanghai";

这个多余的空格会让Java把带空格的字符串当成完整主机名去解析,自然找不到对应的网络地址。

2. 验证客户端和MySQL服务器的网络连通性

如果修正空格后还是报错,先在运行Java程序的机器上ping一下服务器IP:

ping 192.168.0.110

如果ping不通,说明两台机器的网络有问题:可能是服务器防火墙没开放3306端口,或者两台设备不在同一个局域网里,得先把网络打通。

3. 检查MySQL服务器的远程连接权限

确保MySQL允许从你的客户端IP访问:

  • 登录MySQL服务器,执行以下SQL(替换成你的实际用户名、密码和数据库名):
GRANT ALL PRIVILEGES ON your_db.* TO 'your_username'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
  • 然后修改MySQL的配置文件(比如my.cnf或my.ini),把bind-address的值改成0.0.0.0(允许所有IP访问),之后重启MySQL服务。

4. 核对Java代码的连接细节

再确认代码里没有其他低级错误:比如端口号是不是默认的3306,用户名和密码有没有拼写错误,这些小细节也可能导致连接失败。

给你一个正确的经纬度上传代码示例,你可以对比参考:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class LatLngUploader {
    private static final String DB_URL = "jdbc:mysql://192.168.0.110:3306/location_db?useSSL=false&serverTimezone=Asia/Shanghai";
    private static final String DB_USER = "root";
    private static final String DB_PWD = "your_mysql_password";

    public static void uploadLatLng(double lat, double lng) {
        try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PWD)) {
            String sql = "INSERT INTO gps_data (latitude, longitude) VALUES (?, ?)";
            try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
                pstmt.setDouble(1, lat);
                pstmt.setDouble(2, lng);
                pstmt.executeUpdate();
                System.out.println("经纬度数据上传成功!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 测试上传示例经纬度
        uploadLatLng(30.2672, 120.1551);
    }
}

先从最可能的空格问题入手,应该能快速解决你的报错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:17:27