Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法

在之前的博客中介绍过在阿里云上部署mariadb数据库,并通过Navicat实现远程连接数据库的方法。好多天过去了,一直没有管理数据库,今天通过Navicat登录时突然报错:

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法

我又通过xshell登录阿里云,通过命令行的方式登录数据库,发现一切正常,但是用Navicat连接就报错,这就很奇怪了。于是就在网上找啊找,突然发现一个方法解决了我的问题,因此在这里记录一下:

先扯个淡
其实有些人看到这个问题,可能一上来就感觉是不是密码输入错误了。因为本人之前一直也没动过这个数据库,既然曾经连接好使过,那密码确实不应该出错。括号中(using password:?)?处如果输入密码了,就显示YES,如果啥也没输入,就显示NO。

另外网上还说,还有可能是端口冲突了。如果项目多,占用了3306端口的话就自己kill一下进程或者修改一下端口吧。

我的解决办法
进入到mariadb的安装目录下,我的是/etc/mysql,进入之后,文件目录如图所示:

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法
上述安装目录中,有两个配置文件需要重点关注一下:my.cnf和debian.cnf

在xshell命令行中cd到这个目录下,并分别用vim打开上述两个文件:

1.my.cnf

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法

在[mysqld]下添加:skip-grant-tables(如果没有mysqld的话就自己照着格式写一个)

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法
2.debian.cnf

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法
同样,在[mysqld]下添加:skip-grant-tables(如果没有mysqld的话就自己照着格式写一个)

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法
修改完上面两个文件之后,重启数据库 service mysql restart

这时候再用Navicat连接一下就好使了。又可以愉快的干活了~

最后
其实我认为上面两个应该是修改一个就可以,但是具体是修改哪个我也不知道,以防万一,就都改了吧。
如果找不到自己mariadb或者mysql安装到那个文件目录下了,用 whereis mysql 语句寻找(mariadb和mysql都是查找mysql)

然后Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法挨个点进去找就行了。
最后别忘了重启数据库。
————————————————
版权声明:本文为CSDN博主「酷酷的橙007」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiecheng1995/article/details/93203119

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法 weixin_36877698 发布了4 篇原创文章 · 获赞 0 · 访问量 1504 私信 关注
上一篇:mysql Mac上修改默认字符集为utf8


下一篇:my.cnf文件详解