运行Liquibase发生意外错误:com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败

时间:2020-02-06 07:40:51

标签: mysql liquibase mysql-connector

我使用

  • MySQL 5.7.28
  • Liquibase-3.8.5
  • mysql-connector-java-8.0.19

我尝试使用docker运行MySQL。

docker-compose看起来像这样:

version: "3"
services:
  smartsense-db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
    ports:
      - "3306:3306"
    volumes:
      - ./db_config:/etc/mysql/mysql.conf.d
      - ./sql:/docker-entrypoint-initdb.d

当我尝试通过liquibase连接到mysql时:

liquibase \
--driver=com.mysql.cj.jdbc.Driver \
--classpath=lib/mysql-connector-java-8.0.19.jar \
--changeLogFile=changelog/db.changelog-1.0.xml \
--url="jdbc:mysql://localhost:3306/dbname?nullNamePatternMatchesAll=true&useLegacyDatetimeCode=false&serverTimezone=UTC" \
--username=root --password=password update

它给了我以下错误:

原因:javax.net.ssl.SSLHandshakeException:不适当 协议,可能没有指定适当的密码套件或协议 在com.ibm.jsse2.D.c(D.java:91)处被停用 com.ibm.jsse2.av.i(av.java:444)上的com.ibm.jsse2.av.j(av.java:332) 在com.ibm.jsse2.av.a(av.java:1009)处 com.ibm.jsse2.av.startHandshake(av.java:778)位于 com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:336) 在 com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188) 在 com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99) 在 com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:329)

也在docker-compose日志上,我看到错误:[Note] Bad handshake

当我使用mysql版本5.6而不是5.7时有效

0 个答案:

没有答案