我正在尝试通过引用this为ssl
设置mysql
。
我能完成前3个步骤,但遇到第4个问题,如下:
GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL;
FLUSH PRIVILEGES;
然后我重新启动mysql服务器。
当我尝试运行mysql -ussluser -pssluser -P3306 --ssl-key="C:\Program Files\MySQL\MySQL Server 5.5\certs\ca-cert.pem"
时执行此语句后,它显示以下错误:访问被拒绝用户'ssluser'@'localhost'(使用密码:是)
我在这里使用 3306 ,因为它是我的默认端口。
当我已执行 GRANT 语句时,如何说拒绝访问。
请注意
我使用 GRANT 语句mysql -ussluser -pssluser
执行了REQUIRE SSL
之前的mysql
,我能够连接到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';
在执行 GRANT 语句之前,我能够通过 ssluser 连接到 workbench 。但现在它的访问被拒绝错误。
当我使用SHOW STATUS LIKE 'Ssl_cipher';
时,我得到了
have_openssl禁用 have_ssl DISABLED
当我使用此certs
时,我得到了
Ssl_cipher _________
我已创建所有服务器和客户端证书,并将它们放在mysql server
根目录下的{{1}}目录中。
我几天都在尝试但却一无所获。任何帮助表示赞赏。
我是第一次这样做。任何人都可以通过详细程序指导我这样做吗?
答案 0 :(得分:7)
我今天正在努力解决类似的错误消息,这就是我发现的内容。
--ssl
选项似乎并未真正启用SSL传输。 --ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA
以使mysql客户端真正使用SSL并允许客户端进行身份验证。 以下是我用于设置新用户的确切步骤:
CREATE USER 'ssl-user'@'%' identified by '<password>';
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL;
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%';