我试图用OSX船长上的终端连接到我的AWS实例,但是我一直收到这个错误:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)这是一个新的OSX安装,我使用brew安装mysql和openssl,我可以连接到本地服务器。而且,MySQL工作台似乎运行得非常好。
我的Ubuntu机器也可以通过终端连接到RDS实例。
发布于 2015-12-09 15:50:30
我也遇到了同样的问题-ish!brew最有可能安装MySQL5.7,据我所知,它需要ssl,除非--skip-ssl指定了其他明智的方法。您可以通过运行brew uninstall mysql卸载mysql,然后通过运行brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/mysql55.rb && brew link homebrew/versions/mysql55 --force安装5.5。
当然,这并不能解决修复初始错误的问题,但我还没有找到任何文档,说明为什么5.7与5.5在这种情况下有所不同。祝你好运!
编辑:啊哈!这是文件:
对于
--ssl服务器,此选项指定服务器允许但不需要MySQL连接。默认情况下,从MySQL 5.7.5开始,服务器端将启用该选项,并在5.7.5之前禁用该选项。另外,从MySQL 5.7.5开始,使用OpenSSL编译的MySQL服务器可以在启动时自动生成缺失的OpenSSL文件。见6.3.13.1节,“使用MySQL创建SSL和RSA证书和密钥”。
另一个选项,而不是降级到5.5,您可以打开(或创建) /etc/my.cnf或/etc/mysql/my.cnf,并在现有的mysql >5.7.5中添加以下内容:
[client]
ssl=0这将禁用客户端连接上的ssl,并且行为类似于mysql < 5.7.5。
发布于 2018-10-03 08:24:12
-跳过-ssl(或--ssl-mode= MySQL 8.0禁用)不能解决这个问题,它只是绕过它。
当SSL握手遇到错误时发生错误,MySQL缺乏有关该错误的详细信息,这是一个打开的错误:https://bugs.mysql.com/bug.php?id=75311。
您应该首先检查您的证书:
openssl verify -CAfile /etc/mysql/newcerts/ca-cert.pem /etc/mysql/newcerts/server-cert.pem /etc/mysql/newcerts/client-cert.pem然后,您必须遵循MySQL请求来生成正确的密钥和证书,特别是关于必须不同的公共名称值:https://dev.mysql.com/doc/refman/8.0/en/creating-ssl-files-using-openssl.html
下面是生成这些证书的一种方法,可能不是最好的,但根据活动云支持,它可以工作:
服务器端:
openssl genrsa 2048 > /tmp/cert/mysqld-ca-key.pem
openssl req -sha1 -new -x509 -nodes -days 3650 -key /tmp/cert/mysqld-ca-key.pem -subj "/C=FR/ST=/L=/O=mysqld/CN=mysqld-CA" > /tmp/cert/mysqld-ca-cert.pem
openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout /tmp/cert/mysqld-server-key.pem -subj "/C=FR/ST=/L=/O=mysqld/CN=mysqld-server" > /tmp/cert/mysqld-server-req.pem
openssl rsa -in /tmp/cert/mysqld-server-key.pem -out /tmp/cert/mysqld-server-key.pem
openssl x509 -sha1 -req -in /tmp/cert/mysqld-server-req.pem -days 3650 -CA /tmp/cert/mysqld-ca-cert.pem -CAkey /tmp/cert/mysqld-ca-key.pem -set_serial 01 > /tmp/cert/mysqld-server-cert.pem客户端:
openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout /tmp/client-cert/mysql-client-key.pem > /tmp/client-cert/mysql-client-req.pem -subj "/C=FR/ST=/L=/O=mysql-client/CN=mysql-client"
openssl rsa -in /tmp/client-cert/mysql-client-key.pem -out /tmp/client-cert/mysql-client-key.pem
openssl x509 -sha1 -req -in /tmp/client-cert/mysql-client-req.pem -days 3650 -CA /tmp/cert/mysqld-ca-cert.pem -CAkey /tmp/cert/mysqld-ca-key.pem -set_serial 01 > /tmp/client-cert/mysql-client-cert.pem 然后在正确的目录中复制为客户端和服务器端生成的文件。
最后,您可以尝试强制您的密码列表:https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html#statvar_Ssl_密码学_列表
https://serverfault.com/questions/740826
复制相似问题