【问题标题】:Connect to MySQL with JDBC over network通过网络使用 JDBC 连接到 MySQL
【发布时间】:2010-11-25 12:15:37
【问题描述】:

我正在尝试通过网络连接到 MySQL 数据库。我已经安装了 MySQL,并且该服务在默认端口上运行。我还将 SQL 连接器安装到 jar 文件并将 java JDK 添加到服务器计算机。我可以使用以下代码连接到我的本地数据库:

private String dbUrl = "jdbc:mysql://localhost/DatabaseName";
private String dbClass = "com.mysql.jdbc.Driver";

但是当我尝试通过网络连接到它时,使用 IP 地址(例如:192.168.1.45):

private String dbUrl = "jdbc:mysql://192.168.1.45/DatabaseName";
private String dbClass = "com.mysql.jdbc.Driver";

我收到连接错误:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

有人知道这是什么问题吗?我需要添加其他地址吗? 我已经添加了带有地址的默认端口,但无法使其工作。

感谢您的帮助。

【问题讨论】:

标签: java mysql jdbc


【解决方案1】:

默认情况下,MySQL 不允许远程访问,只允许本地访问。 您必须修改 /etc/mysql/my.cnf 配置(在 Linux 上):

bind-address = 192.168.1.45 // Your Server IP address
# skip-networking // This should be commented .

查看整个过程here

【讨论】:

    【解决方案2】:
    1. 检查参数端口、bind-address、套接字的 my.cnf [mysqld] 设置,以确保这些不会导致问题。
    2. 检查文件 /etc/hosts、/etc/hosts.deny 以确保一切正常。
    3. 检查防火墙应用程序
    4. 检查以确保任何目录 mysqld 的套接字都具有适当的权限。
    5. 检查以确保 mysql 数据库(用户表)中的安全设置允许从远程主机进行访问。
    6. 确保您可以 telnet OK 到 localhost 3306、127.0.0.1 3306 以及您的机器配置的任何其他 IP 地址(使用 ifconfig 来查找)。

    【讨论】:

      【解决方案3】:

      您可以使用 MySQL Workbench 或 mysql 客户端测试服务器设置,这将缩小问题的范围。有时只查看服务器是否在那里也很有用:

      telnet host 3306

      它会告诉你服务器的版本号和其他一些二进制垃圾。足以知道您的主机正在听。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 2013-11-29
        相关资源
        最近更新 更多