使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法

今天想尝试一下mysql的图形化管理工具,于是下载了SQLyog,连接时却遇到了以下错误:
使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法_第1张图片
其中192.168.0.10是我linux下设置的inet,我们是通过它远程连接数据库,这肯定是没有问题的,账号root以及密码我在登陆数据库的时候已经用过多回了,肯定也没有问题,那么到底是什么问题呢?

1.首先要确保mysql服务是打开的,也就是你linux下输入mysql,如果提示ERROR 2002:
使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法_第2张图片
说明你的mysql服务没有启动,需要输入:service mysql start(我的linux系统是centos7.7,不同的系统可能命令不一样)就可以正常启动mysql了,注意每次打开虚拟机都要运行这句命令。

2.如果mysql服务已经启动,但还是SQLyog还是报2003错误,那么我们就要关闭linux防火墙,运行命令:service firewalld stop(我的linux系统是centos7.7,不同的系统可能命令不一样),就可以关闭防火墙,同样注意打开虚拟机后想用SQLyog远程连接时都要运行这句命令(因为系统重启后会自动开启防火墙)。

3.如果关闭防火墙后报1045错误:
使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法_第3张图片
这是因为,我们当前是以root用户远程登录的:使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法_第4张图片
而root用户默认是禁止我们远程进行访问的(因为root权限太高,会很不安全),所以一般不推荐我们用root登录SQLyog,那么应该怎么访问呢?
在mysql8以上的版本中,可以用CREATE USER 用户名@‘ip地址’ 的方式新建一个用户,ip地址处就写你希望远程访问mysql的电脑的ip就可以,例如我的电脑ip是192.168.0.xxx,那么我的ip处就可以填写192.168.0.%,%就表示192.168.0下的所有ip都可以访问mysql,然后就可以访问啦!
示例(在linux中的mysql下输入):
CREATE USER mc_class@‘192.168.0.%’
使用SQLyog连接Linux(CentOS版本)下的MySQL8数据库报2003以及1045错误的解决方法_第5张图片
之后就可以连接成功啦!

如果你就想使用root账户,参考这篇:
mysql 8 设置允许远程连接 You are not allowed to create a user with GRANT

其他版本可以参考这两篇:
a.SQLyog连接Linux远程数据库错误码1045
b.sqlyog错误码1045,mysql远程连接错误码1130

ps:有同学可能觉得每次重启虚拟机都要输入命令启动mysql服务或者是关闭防火墙很麻烦,这种可以在网上找博客看看是如何永久关闭防火墙等,但是我感觉永久关闭并不好,所以就没有写这种教程。。。感兴趣的可以自己去查。

这几个报错问题折腾了我半天的时间,在网上找了大量的博客终于解决了。一开始是mysql报2002错误,然后又是sqlyog的报错。其实最根本的问题是好多博客根本没有说到点子上,就是复制粘贴而已,而且很多博客的解决办法真的不好,动不动就改配置文件,在里面加什么跳过密码验证的语句,这样虽然省事,但是安全性就变得没有保障。每个人的电脑环境也不一样,比如这个sqlyog错误有的人是端口3306的问题,有的是其他问题。所以大家遇到类似问题的时候,一定要广泛看博客,找到自己电脑环境存在的问题,切记不要心急。我自从学mysql开始,就没有顺过,linux下的mysql环境就折腾了我一天(原因是我跟的老师视频教程里有一处讲错了,导致我查了大量的资料才发现哪错了…真是日了狗),然后这几个报错又折腾了半天,以至于mysql的学习进度缓慢,只能劝慰自己心急吃不了热豆腐,慢慢来,加油!

你可能感兴趣的:(MySQL学习)