Navicat远程连接Linux环境下MySQL(错误error:1045/1251/2003(10038)/2059)解决方案

Navicat远程连接Linux环境下MySQL(错误error:1045/1251/2003(10038)/2059)解决方案


心路历程

因为之后要学习有关数据库开发的课程,我们需要部署云服务器并添加mysql功能,以便后续研究学习,我折腾了好几天,按照现有的教程安装,一开始还好好的,慢慢的错误百出,又去查自己遇到的问题,做不通又清空服务器数据推倒重来……离目标渐行渐远,(期间问老师,查度娘……)非常低效。好在我没有放弃!经过一番曲折之后,我终于成功的连接上了!
下面废话不多说,上干货!
提示:错误1045/2003(10038)需要全部看完
   错误1251/2059请直接看标题四

确定现阶段部署/安装的状态

项目部分状态
云服务器CentOS 7.x
MySQL8.x
winSCPSFTP视图化工具(方便修改Linux文件,可选其它,如Xftp等)
SecureCRT远程登录工具(可选其它,如Xshell等)

首先你要确定你已经获得了一台云服务器,(楼主用的阿里云)选择安装了CentOS 7(版本不同自测),并为其安装了MySQL8.x(我用的mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz)
有远程登录工具可以正常访问进入云端Linux系统


一、为MySQL root用户添加/修改远程访问权限

操作

远程主机目录下
/etc/my.cnf文件
删除或注释bind-address字段有关的行(#注释掉或者直接把这行删除)
通过secureCRT访问远程主机并以root用户登录MySQL
添加或修改root用户的访问地址(默认root@localhost)(root@%的意思是任意ip)

username@localhostusername@%
仅为本地(本机或局域网访问)任意ip地址均可访问(实现远程访问)

下面可以尝试以下两种命令(任选其一)为root用户修改/添加 %

mysql> use mysql;
//第一种(直接把root@localhost修改成root@%)
mysql> update user set host = '%' where user = 'root';
//第二种(额外添加一个root@%用户)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

验证root远程登录功能是否修改成功

方法一:
mysql下输入

mysql> use mysql;
mysql> select user, host from user;

效果如下

方法二:
mysql下输入

mysql> use mysql;
mysql> select host from user where user = 'root';

效果如下

二、给云服务器添加MySQL相应的端口(3306)

在云服务器实例页面进入安全组,点击相应远程主机的配置规则
操作如图
在这里插入图片描述
在这里插入图片描述
快速添加一个MySQL的端口
在这里插入图片描述
在这里插入图片描述
效果如下
在这里插入图片描述

三、重要步骤:修改root@%密码(重新初始化)

通过secureCRT登录远程主机
登录MySQL
重新设置localhost的密码和%的密码(必须修改root@%的密码,类似于初始化,否则无法远程登录)
代码如下

mysql> alter user 'root'@'localhost' IDENTIFIED BY '新的密码';
mysql> alter user 'root'@'%' IDENTIFIED BY '新的密码';

四、补充步骤:Navicat连接MySQL(error:1251/2059如未出现此问题可跳过)


当Navicat连接MySQL出现1251/2059时,需要修改密码的加密权限
通过secureCRT登录远程主机
登录MySQL
输入以下命令

//不输前两条也可以
//输入第一行会出现乱码(直接无视,正常输入后续指令即可)输完可去云服务器页面重启主机
mysql> select host,user,plugin,authentication_string from mysql.user;
//设置密码永不过期
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '当前你的root@%密码' PASSWORD EXPIRE NEVER; 
//修改密码+修改加密规则(可用当前密码,这条命令必须输入)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新的密码';
//刷新数据
mysql> FLUSH PRIVILEGES;

(tips:记得改一下连接属性的密码(因为这个步骤修改了MySQL密码))

连接成功

以上操作设置好后就可以愉快的打开Navicat添加一个远程连接了!
下面show图(ps:心情瞬间舒畅许多)
Navicat新建连接设置如图
在这里插入图片描述
点击连接测试
在这里插入图片描述


以上就是本期教程的全部内容,祝大家操作顺利,共同进步!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值