连接虚拟机的mysql的相关问题解决
问题描述:
windows 命令行输入这个,试图登录的 centos 7 的虚拟机的 mysql 发现失败了。
mysql -h 192.168.3.128 -P 3306 -u root -proot
- 报错信息
mysql -h 192.168.3.128 -P 3306 -u root -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
在 idea 当中会这样报错:
IDEA 中数据库连接报错 [08S01] Communications link failure...the server was 0 milliseconds ago
- 原因分析
显然是 SSL 的连接问题.
查询之后发现这通常是因为 MySQL 服务器启用了 SSL 加密连接,但是 MySQL 客户端试图使用普通非加密连接。
- 解决方法
所以发现只要原本那里加上: --ssl-mode=DISABLED
就可以成功登录了。因为这个是强制关掉 SSL 加密。
mysql -h 192.168.3.128 -P 3306 -u root -proot --ssl-mode=DISABLED
但是这显然治标不治本。所以我们需要如下操作:
- 在虚拟机输入: vim /etc/my.cnf
- 在[mysqld]下输入这几条命令
- ssl=OFF
require_secure_transport=OFF
require_secure_transport=OFF #设置 mysql 不需要远程的 ssh 加密就可以访问
validate_password_length=4 #设置密码长度为 4
validate_password_policy=LOW #降低密码等级
bind-address=0.0.0.0 # 让外部主机也可以访问虚拟机的 mysql
- wq 保存,退出。
- 输入"systemctl restart mysqld" ,让配置生效。
- 登录 mysql,输入:" grant all privileges on . to root@'%' identified by 'root'; "
- 然后输入:" FLUSH PRIVILEGES; " 刷新权限.
- 再次输入:"systemctl restart mysqld"
- 即可解决
- 成功解决页面
windows 命令行
idea