1.背景

安装好 mysql 后,一般会使用客户端连接(必须Navcat)。本文描述了怎么设置远程连接。

2.思路

  1. 修改 root 账户的 host 等于 %
  2. 防火墙增加3306端口
  3. 处理密码的加密方式

3.操作

3.1 修改 root 账户的 host 等于 %

先看下 用户表的信息

use mysql;
select host, user from user;

image

注意:这里的 root 账户的 host 的值是 localhost

开始修改,执行:

mysql> use mysql;
mysql> update user set host = '%' where user = 'root';

修改后:

image

注意:这里的 root 账户的 host 的值变成了 %
% 这个百分号表示的意思是任意机器都可以连接,也可以缓存你机器的固定ip。

3.2 重启 mysql

systemctl stop mysqld.service
systemctl start mysqld.service

3.3 为防火墙添加 3306 端口

# 为防火墙添加 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload

高高兴兴的打开连接,发现:does not support authentication protocol

image

不得已,继续开始设置

select host,user,plugin,authentication_string from mysql.user;

3.4 处理密码的加密方式

发生这个问题的原因是 密码的加密方式 的问题。

先看下现在的密码的加密方式

select host,user,plugin,authentication_string from mysql.user;

注意:下图中的 plugin = cacheing_sha2_password 方式

image

执行命令修改密码,顺道更改加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH  mysql_native_password BY 'Spri636!';

看下修改后样子

执行 select host,user,plugin,authentication_string from mysql.user;

image

注意:上图中的 plugin = cacheing_sha2_password 方式

3.5 完成

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐