ChiyoLin
V2EX  ›  Java

求助, java jdbc 连接外网 MySQL 失败

  •  
  •   ChiyoLin · Aug 13, 2016 · 4770 views
    This topic created in 3744 days ago, the information mentioned may be changed or developed.
    之前一直用 jdbc 连接本地 MySQL 以及局域网内 MySQL 都好使,但是最近将数据库放到阿里云服务器上以后 jdbc 连接就报异常失败了,不知道为什么,很困惑,表示本地用 mysql -u 用户名 -h 服务器地址 -P3306 -p 都是 OK 的呀呀呀… SOS
    11 replies  •  2016-08-15 13:02:32 +08:00
    caixiexin
    caixiexin
    Aug 13, 2016 via Android
    1
    失败堆栈贴出来看看?
    SoloCompany
    SoloCompany
    Aug 13, 2016
    2
    mysql 的 user/password 是跟 ip 相关的, ip 变化了,要重新 grant 的
    ooTwToo
    ooTwToo
    Aug 13, 2016 via iPhone
    3
    远程连接权限
    ChiyoLin
    ChiyoLin
    OP
    Aug 13, 2016 via Android
    4
    @SoloCompany @ooTwToo grant 给%了呀…而且我本地使用命令行连接到阿里云服务器 MySQL 是成功的…就是 jdbc 连接的时候报错,然而我用 jdbc 连接局域网内的服务器时是成功的…
    ChiyoLin
    ChiyoLin
    OP
    Aug 13, 2016 via Android
    5
    @caixiexin 等一下开电脑贴,其实无非就是一些提示连接超时的 exceptions ,换成本地 ip 就又正常了…
    JoshuaJin
    JoshuaJin
    Aug 13, 2016
    6
    你先 telnet 一下服务器的端口,可能是防火墙的问题。
    ChiyoLin
    ChiyoLin
    OP
    Aug 14, 2016 via Android
    7
    @JoshuaJin telnet xxx.xxx.xxx.xxx 3306 是好的…事实上我用 mysql 命令行是可以连接到阿里云服务器的 MySQL 的,就是用 jdbc 就不好使了( jdbc 连接局域网内 MySQL 是好的)…
    syyy
    syyy
    Aug 14, 2016
    8
    我觉得你地址写错了。
    ChiyoLin
    ChiyoLin
    OP
    Aug 14, 2016 via Android
    9
    @syyy 应该没有错,肉眼盯了好多遍了…而且 jdbc 里面的地址使用 IDEA 自带的 MySQL 连接工具 test successfully …
    ChiyoLin
    ChiyoLin
    OP
    Aug 15, 2016
    10
    @ChiyoLin 异常↓
    Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
    Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

    表示使用命令行 mysql -uusername -hserveraddress -p 是可以成功连上的
    ChiyoLin
    ChiyoLin
    OP
    Aug 15, 2016
    11
    @caixiexin 异常↓
    Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
    Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

    表示使用命令行 mysql -uusername -hserveraddress -p 是可以成功连上的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1447 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:12 · PVG 01:12 · LAX 09:12 · JFK 12:12
    ♥ Do have faith in what you're doing.