我在MySQL客户端中可以使用哪些密码?

时间:2018-06-13 18:48:57

标签: mysql ssl openssl ssl-certificate percona

尝试使用SSL连接到mysql Workbench 的远程MySQL 5.6(Percona节点)服务器时,我遇到了一些神秘的错误。我已经制作了自己的签名证书和我自己的CA.

mysql -h host -p -u user --ssl-ca=ca-cert.pem

  

ERROR 2026(HY000):SSL连接错误:协议版本不匹配

我已经读过,我应该包含密码选项。所以我通过SSH连接到服务器并重新运行相同的命令(没有主机)来为本地连接提取密码。

mysql>  show session status like '%cipher';
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| Ssl_cipher    | ECDHE-RSA-AES128-GCM-SHA256 |
+---------------+-----------------------------+

当我重试包含密码时,我收到下一条错误消息。

mysql -h host -p -u user --ssl-ca=ca-cert.pem --ssl-cipher=ECDHE-RSA-AES128-GCM-SHA256

  

ERROR 2026(HY000):SSL连接错误:无法设置要使用的密码

我从Connect to MySQL using SHA2了解到我的客户很可能无法使用SHA256或更高版本进行连接。

我检查了没有高SHA的可用服务器密码:

ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
DHE-DSS-AES128-SHA
DHE-RSA-AES128-SHA
DHE-RSA-AES256-SHA
AES128-SHA
DH-DSS-AES128-SHA
ECDH-ECDSA-AES128-SHA
AES256-SHA
DH-DSS-AES256-SHA
ECDH-ECDSA-AES256-SHA

我尝试过这些密码无济于事。任何人都可以帮我诊断问题吗?这可能是我的证书有问题吗?或者是确定密码的证书?

更新:链接库

我已检查过我的服务器,mysqld的SSL与

相关联
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0

尽管如此,我知道Percona版本与OpenSSL相关联。 客户端是针对

编译的
linux-vdso.so.1 => 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
libz.so.1       => /lib/x86_64-linux-gnu/libz.so.1
libdl.so.2      => /lib/x86_64-linux-gnu/libdl.so.2
libtinfo.so.5   => /lib/x86_64-linux-gnu/libtinfo.so.5
libstdc++.so.6  => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libm.so.6       => /lib/x86_64-linux-gnu/libm.so.6
libgcc_s.so.1   => /lib/x86_64-linux-gnu/libgcc_s.so.1
libc.so.6       => /lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2```

我没有看到任何与SSL相关的内容,但libdl存在,这意味着可能存在动态加载。但是,我怀疑这个客户端很可能是为YaSSL编译的。

1 个答案:

答案 0 :(得分:1)

阅读手册页https://dev.mysql.com/doc/refman/5.7/en/encrypted-connection-protocols-ciphers.html

它列出了MySQL传递给OpenSSL和yaSSL的密码。您的客户端可能使用OpenSSL或yaSSL中的一个进行编译。