我正在尝试通过引用this为ssl
设置mysql
。
我能完成前3个步骤,但遇到第4个问题,如下:
GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL;
当我尝试运行mysql -ussluser -pssluser -P3430 --ssl-key=
时执行此语句后,它显示以下错误:无法连接到'localhost'上的MySql服务器(10061)
我尝试使用mysql -ussluser -pssluser
连接到mysql,但它显示:访问被拒绝用户'ssluser'@'localhost'(使用密码:是)
当我已执行 GRANT 语句时,如何说拒绝访问。
请注意我在使用 GRANT 创建之前执行了mysql -ussluser -pssluser
,我能够连接到mysql
。我在这个时间点执行mysql> CHANGE MASTER TO MASTER_SSL=1;
(应启用SSL ???)。
此外,如果我尝试SHOW GRANTS FOR 'ssluser'@'localhost';
我得到了
GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION
我几天都在尝试但却一无所获。任何帮助表示赞赏。
当我使用show global variables like 'have_%ssl';
时,我得到了
have_openssl DISABLED
have_ssl DISABLED
当我使用此SHOW STATUS LIKE 'Ssl_cipher';
时,我得到了
Ssl_cipher _________
此外,我已经创建了所有经过认证的服务器和客户端,并将它们放在certs
根目录下的mysql server
目录中。
答案 0 :(得分:0)
您没有提供有关服务器或客户端操作系统的任何信息,也没有提供有关可执行文件来源的信息,也没有提供DBMS的配置信息。
mysql -ussluser -pssluser -P3430 --ssl-key =
IIRC,当您设置用户帐户以提供用于身份验证的客户端证书(GRANT .... REQUIRE X509;)时,将使用ssl-key选项。在这种情况下,您需要将客户端证书文件作为参数提供。
但是你只是说它应该使用SSL - 即客户端是匿名的SSL用途。但是客户端仍然需要验证服务器 - 因此mysql应该以--ssl-ca=ca-cert.pem或--ssl-capath = directory_name启动。
您还需要确保服务器配置为支持SSL - ini文件或启动脚本应包含对其将要使用的证书的引用以及它处理SSL连接的端口。还必须将SSL支持编译到二进制文件中,并且可以使用任何相关的共享对象文件。如果config说SSL但DBMS无法执行SSL,那么您应该从服务器日志中获得一些指示。