JDBC 使用 SSL 连接到 MySQL 的命令字符串

Command string for JDBC connection to MySQL with SSL

我正在尝试将数据建模工具 (DbSchema) 连接到 Google 云 SQL 中的 MySQL 数据库 运行。云实例需要 SSL。我已经将必要的密钥下载到我的 Mac 并且可以通过某些工具进行连接,例如 Sequel Pro 和 MySQL Workbench。但是,这些工具为我提供了一种将关键位置输入到它们的连接中的方法 windows。但是,DbSchema 没有——它所做的只是允许我修改它用于通过 JDBC 连接到数据库的连接字符串。

我目前拥有的是:

jdbc:mysql://<MY IP ADDRESS>:3306?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=true&verifyServerCertificate=false

虽然我使用的 PW 是正确的,但这最终会给我一个密码错误。我认为问题是 JDBC 没有使用 SSL 密钥。有没有办法在此连接字符串中指定 SSL 密钥的位置?

这篇MySQL JDBC (for SSL) link可能会对您有所帮助。请参阅设置客户端身份验证:

Once you have the client private key and certificate files you want to use, you need to import them into a Java keystore so that they can be used by the Java SSL library and Connector/J. The following instructions explain how to create the keystore file:

  1. 将客户端密钥和证书文件转换为 PKCS #12 存档:

    shell> openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem \
      -name "mysqlclient" -passout pass:mypassword -out client-keystore.p12
    
  2. 将客户端密钥和证书导入 Java 密钥库:

    shell> keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 \
     -srcstorepass mypassword -destkeystore keystore -deststoretype JKS -deststorepass mypassword
    
  3. 设置JDBC连接属性:

    clientCertificateKeyStoreUrl=file:path_to_truststore_file 
    clientCertificateKeyStorePassword=mypassword