java - 如何在 opensuse 上连接到 mysql localhost?

标签 java mysql jdbc opensuse

首先是配置的细节:

  1. 带有 Parallels Plesk Panel 10(64 位)服务器的 openSUSE 11.3
  2. 已安装并运行 MySQL(无“跳过网络”)
  3. java 1.6.0_24(Java HotSpot(TM) 64 位服务器 VM(内部版本 19.1-b02,混合模式))

mysql 服务器监听 0.0.0.0:3306

netstat -lnp | grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      3499/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     10916  3499/mysqld         /var/run/mysql/mysql.sock

现在是问题。 我无法使用此类使用 jdbc (mysql-connector-java-5.1.17-bin.jar) 从本地主机连接到 mysql:

public class Connect {
    public static void main(String[] args) {
        Connection conn = null;

        try {
            String userName = "user";
            String password = "password";
            // This also doesn't work with "localhost" in the connect string.
            String url = "jdbc:mysql://127.0.0.1:3306/database";

            System.out.println("URL: " + url);

            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection(url, userName, password);
            System.out.println("Database connection established");
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println("Cannot connect to database server");
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                    System.out.println("Database connection terminated");
                } catch (Exception e) { /* ignore close errors */
                }
            }
        }
    }
}

更多详情:

telnet 超时

telnet localhost 3306
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection timed out

nmap 显示端口 3306 在本地主机上被过滤

nmap -p 3306 localhost
Starting Nmap 5.00 ( http://nmap.org ) at 2011-08-30 19:21 CEST
Interesting ports on localhost (127.0.0.1):
PORT     STATE    SERVICE
3306/tcp filtered mysql

Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds

如果我使用 Connect 类从外部连接到服务器 3306 端口,一切正常。

因为我认为这是防火墙的问题。这是 plesk 配置中心自动生成的防火墙。

iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
target     prot opt in     out     source               destination         
ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 reject-with tcp-reset 
DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:10000 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4306 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:12443 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11443 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11444 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8447 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8443 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8880 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:465 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:995 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:106 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
ACCEPT     tcp  --  *      *       127.0.0.1            0.0.0.0/0           tcp dpt:5432 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:5432 
ACCEPT     tcp  --  *      *       127.0.0.1            0.0.0.0/0           tcp dpt:9008 
ACCEPT     tcp  --  *      *       127.0.0.1            0.0.0.0/0           tcp dpt:9080 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:9008 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:9080 
DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:137 
DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:138 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:139 
DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:445 
DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194 
ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53 
ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53 
DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 code 0 
DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP 0 packets, 0 bytes)
target     prot opt in     out     source               destination         
ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 reject-with tcp-reset 
DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
ACCEPT     all  --  lo     lo      0.0.0.0/0            0.0.0.0/0           
DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
target     prot opt in     out     source               destination         
ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 reject-with tcp-reset 
DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

此外,我可以使用 perl 连接到本地 mysql。

$dsn = "dbi:mysql:$database:localhost:3306";
$connect = DBI->connect($dsn, $user, $pw);

对于解决此问题的任何提示,我将深感遗憾。 马丁

最佳答案

你能修改你的 IPTables 吗?如果可以,请尝试添加此规则:

iptables -I INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT

关于java - 如何在 opensuse 上连接到 mysql localhost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7247501/

相关文章:

php - 检查登录脚本是否允许访客进入?

python - Jupyter Spark 数据库访问; java.lang.ClassNotFoundException : com. mysql.jdbc.Driver 异常

java - 在 Java JDBC 中将高分保存到数据库中

mysql - 合并或分离表格

java - 等于或介于两个值之间的查找值

Java Swing 动画

java - JasperReports PDF 字体名称(jasperreports.properties 中的默认值)

php - 如何从 mysql 数据库填充下拉列表并且不应该重复值

java - 根据最后一个自动增量主键检索记录并在输入字段中查看

java - org.junit.contrib.java.lang.system.StandardOutputStreamLog 在哪里?