解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题

项目场景:

提示:这里简述项目相关背景:记录一下navicat远程连接数据库失败,解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题


问题描述

提示:这里描述项目中遇到的问题:

navicat远程连接数据库失败,出现以下报错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/976a64cd9f9e490aa760e0a78fa6967f.png解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第1张图片

告诉我用户root拒绝访问。

—跟着这个链接的文章修改,发现有些出入,所以记录一些

原因分析:

提示:这里填写问题的分析:
现在来一步步排查

1 难道是我的密码错误?

我登录我的远程连接服务器,
将密码了修改一下(大家可以去搜忘记密码教程)

输入mysql -u root -p 输入密码,又成功访问/到了mysql,
连接navicat试试,结果还是不行
那说明不是密码的问题(划重点!!!!)
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第2张图片
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第3张图片

2难道是没有给root用户权限吗

输入show grants;
出现划红线字符串,果然是没有给root权限,这个的意思就是本数据库只允许本地访问,其他ip的主机访问不到
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第4张图片

解决方案:

提示:这里填写该问题的具体解决方案:

跟着教程输入,

1改表法

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第5张图片
发现root的host已经是对所有ip都开放了

2 授权法

跟着教程敲





```java
 #给用户授权
grant all privileges on *.* to "root"@"%";

``
果然成功了
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第6张图片

接着再输入以下,刷新一下用户权限

flush privileges;

本来以为皆大欢喜,输入

show grants;

发现/数据库还是没有对外开放权限

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第7张图片

3 难道说数据库需要重启一下?

先使用以下命令查看数据库状态,是active证明数据库是启动的,

systemctl restart mysqld

再使用以下命令重启一下

service mysqld restart

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第8张图片
连接一下navicat,还是错误

4 难道说我的数据库端口不是3306吗?

输入以下代码,结果出来是3306啊

show global variables like 'port';

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第9张图片

很奇怪,为什么我修改root用户可以访问的ip地址失败呢

5难道是我的3306端口没开?

输入以下命令,服务器的端口也开了,腾讯云上面的防火墙也开了3306

firewall-cmd --list-ports

在这里插入图片描述

6 查看错误日志,爆could not be resolved: Name or service not known

百度说我my.cnf没有加这个参数

skip-name-resolve

然后重启mysql
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第10张图片
在这里插入图片描述

结果navicat还是连接不上

总结:mysql感觉可能被弄坏了
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第11张图片

7最后再努力一波,连不上这云服务器可就白费了,重置密码

本博主特意去请教了高人。
高人看了看,想起对我智障一般的印象,轻描淡写说让我把密码重改试试。
当时我反应贼大,不可能密码错误,我还访问本地的数据库成功了呢,证据如下:
怎么可能犯这种错误,你在 开什么玩笑
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7fdf23173cbf4456a52887b2debc0277.png解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第12张图片

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第13张图片
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第14张图片

在大佬再三肯定加催促下,我不以为意地修改了密码

alter user 'root' identified by '密码';
flush privileges;

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第15张图片
居然!!!!!!!!五雷轰顶
博主当时表情真的如下:

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第16张图片
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第17张图片
整个人当场从椅子上摔下来,雷的我前仰马翻

他说:哈哈,果然没错把,只有你们新手才能整出这么奇异的问题~~~
我说:不!一定是哪里出错!!!
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第18张图片
他说:没有哪里出问题,就是你输入错了,不行你再试试

我不死心,把密码又改回去,发现,嘶。。。连上了。。。
在这里插入图片描述
博主当时内心os:

8 有种80岁老大爷半夜走了八百公里,挑扁担来回800次浇菜,第二天起来发现是别人菜地的无力感加羞耻感

始终怀疑我聪明的脑瓜子怎么会出这种错
一定是系统的问题

解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第19张图片
好。。。我信大佬。。。死心了
再一次巩固了我在大佬心中智障印象的地位
解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题_第20张图片
本来以为这个博客是科普篇,没想打是搞笑篇

你可能感兴趣的:(服务器,mysql,tcp/ip)