mysql远程连接失败
mysql
运行环境,VMware
虚拟机Ubuntu20
,宿主机win10
,使用Navicat
连接该数据库,连接失败。
connection refused
MySQL(connection refused)解决方法文章里之前已经写过了是同一个问题,可以参考下。
配置文件取消本机绑定
本人Ubuntu
的mysql
配置文件路径:
1 | /etc/mysql/mysql.conf.d/mysqld.cnf |
注释之后发现还是连接不了。
修改用户表对应host
1 | mysql> update user set host = "%" where user="tony"; |
再次尝试进行连接,使用命令行可以正确连接,但是Navicat
报错:“Authentication plugin 'caching_sha2_password' cannot be loaded
”
修改加密规则
出现以上报错信息,原因是mysql8
之前的版本中加密规则是mysql_native_password
,而在mysql8
之后,加密规则是caching_sha2_password
, 解决问题方法有两种,一种是升级navicat
驱动,一种是把mysql
用户登录密码加密规则还原成mysql_native_password
.
升级Navicat
没啥说的,直接说第二种:
登录mysql
我这里直接使用sudo
了,这样就不用数据用户名了。
1 | sudo mysql |
更新加密规则
1 | # 修改加密规则 |
刷新权限
1 | mysql> FLUSH PRIVILEGES; |
授权数据库
Navicat
已经成功连接了mysql
,但是没有该用户下没有数据库,授权+刷新权限即可将所有数据库加到该用户下。
1 | mysql> grant all privileges on *.* to 'tony'@'%'; |
查找mysql配置文件
1 | mysql --verbose --help | grep -A 1 'Default options' |
或者
1 | mysql --help|grep 'my.cnf' |
默认配置选项会按上述文件的顺序读取