V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChiyoLin
V2EX  ›  Java

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

  •  
  •   ChiyoLin · 2016-08-13 17:23:55 +08:00 · 3537 次点击
    这是一个创建于 3026 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前一直用 jdbc 连接本地 MySQL 以及局域网内 MySQL 都好使,但是最近将数据库放到阿里云服务器上以后 jdbc 连接就报异常失败了,不知道为什么,很困惑,表示本地用 mysql -u 用户名 -h 服务器地址 -P3306 -p 都是 OK 的呀呀呀… SOS
    11 条回复    2016-08-15 13:02:32 +08:00
    caixiexin
        1
    caixiexin  
       2016-08-13 17:36:18 +08:00 via Android
    失败堆栈贴出来看看?
    SoloCompany
        2
    SoloCompany  
       2016-08-13 18:17:29 +08:00
    mysql 的 user/password 是跟 ip 相关的, ip 变化了,要重新 grant 的
    ooTwToo
        3
    ooTwToo  
       2016-08-13 18:21:13 +08:00 via iPhone
    远程连接权限
    ChiyoLin
        4
    ChiyoLin  
    OP
       2016-08-13 19:23:20 +08:00 via Android
    @SoloCompany @ooTwToo grant 给%了呀…而且我本地使用命令行连接到阿里云服务器 MySQL 是成功的…就是 jdbc 连接的时候报错,然而我用 jdbc 连接局域网内的服务器时是成功的…
    ChiyoLin
        5
    ChiyoLin  
    OP
       2016-08-13 19:24:47 +08:00 via Android
    @caixiexin 等一下开电脑贴,其实无非就是一些提示连接超时的 exceptions ,换成本地 ip 就又正常了…
    JoshuaJin
        6
    JoshuaJin  
       2016-08-13 20:35:27 +08:00
    你先 telnet 一下服务器的端口,可能是防火墙的问题。
    ChiyoLin
        7
    ChiyoLin  
    OP
       2016-08-14 00:07:53 +08:00 via Android
    @JoshuaJin telnet xxx.xxx.xxx.xxx 3306 是好的…事实上我用 mysql 命令行是可以连接到阿里云服务器的 MySQL 的,就是用 jdbc 就不好使了( jdbc 连接局域网内 MySQL 是好的)…
    syyy
        8
    syyy  
       2016-08-14 00:15:53 +08:00
    我觉得你地址写错了。
    ChiyoLin
        9
    ChiyoLin  
    OP
       2016-08-14 00:32:53 +08:00 via Android
    @syyy 应该没有错,肉眼盯了好多遍了…而且 jdbc 里面的地址使用 IDEA 自带的 MySQL 连接工具 test successfully …
    ChiyoLin
        10
    ChiyoLin  
    OP
       2016-08-15 13:02:04 +08:00
    @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
        11
    ChiyoLin  
    OP
       2016-08-15 13:02:32 +08:00
    @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 是可以成功连上的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:11 · PVG 07:11 · LAX 15:11 · JFK 18:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.