RHEL 6 中的 mysql jdbc 连接问题

RHEL 6 中的 mysql jdbc 连接问题

我已mysql在其中一台 RHEL 6 服务器中设置了数据库。我想使用java程序从任何其他计算机连接到该服务器的数据库。我该怎么做呢?

答案1

设置类路径

JDBC 连接器将位于路径中/usr/share/java/。我们可以出口类路径作为,

export CLASSPATH=/usr/share/java/mysql-connector-java.jar:$CLASSPATH

授予用户权限

对于连接数据库的用户,应该授予权限。这可以使用以下mysql查询来实现。

GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘<user-password>’ WITH GRANT OPTION;

现在,我们可以使用 java 程序建立与该计算机服务器的连接,mysql但只能作为localhost.如果我们需要使用该服务器的名称或从其他计算机进行连接,我们将得到几个异常,如所讨论的这里这里

编辑/etc/hosts文件

需要注意的是,在上面的步骤中,如果我只使用机器的 IP 地址而不是机器的主机名,它就可以工作。所以,我怀疑这个问题与dns名称解析有关。

我修改了我的/etc/hosts文件以包含以下条目。

127.0.0.1   servername.edu        localhost

我仍然无法使用主机名连接到数据库,考虑到我/etc/hosts也更改了文件,我认为这很奇怪。我什至停下来ip6tables检查这是否是问题所在。然而,所有选项都不起作用,这给了我一个例外,因为,

ERROR: java.net.UnknownHostException:connection refused

编辑/etc/my.cnf文件

最后一个例外是有希望的。它说连接被拒绝,而不是说无法解析主机名之类的内容。因此,我认为应该更改/etc/my.cnf文件中的某些内容,并将以下几行添加到文件中。

port=3306
bind-address=0.0.0.0

当我进行上述更改时,我可以使用主机名从任何地方连接到这台计算机。

相关内容