连接虚拟机的mysql的相关问题解决

发布时间 2023-09-20 16:02:27作者: Lovi*

问题描述:

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 命令行

image-20230726143510107

idea

image-20230726140452742