最近项目需要用mysql数据库,同事把一个新安装的数据交给我使用,没想到一步一个坑,在此记录一下遇到的这个问题。

问题描述

使用navicat数据库工具连接mysql时,弹出了“Password authentication failed”这个错误,于是又开始了漫漫查错之路

解决过程
数据校验
  • 登录linux中的mysql数据库,确保ip和账号密码无异常,登录命令如下,回车键后输入密码
//登录数据库
mysql -uroot -p
配置文件

确保了给的账号相关信息没有问题后,我又查询了一些资料,发现需要修改配置,步骤如下:

  • 打开/etc/ssh/sshd_config文件
  • 将PermitRootLogin yes前的#去掉
  • 将PasswordAuthentication前的#去掉,并将no改为yes
  • service ssh restart 重启ssh服务

正常情况做到这里应该就好了

查看权限

如果经过上面操作还是无法登录,那么可以看一下是否是权限有问题。尽管我一开始下意识的认为root账户应该是所有权限打开的,但是试验后才发现还是需要修改权限的。

//用户授权
grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
//刷新权限
flush privileges;
  • all privileges:表示所有权限(SELECT、CREATE、DELETE、DELETE、ALTER等)
  • *:两个星号表示授权所有数据库的所有表
  • %:表示root用户可以通过任何主机登录

关于授权的命令和解释网上有很多的资料文档,大家可以自行查找,我就不一一赘述了

修改完权限后,再次通过数据库工具连接测试,发现终于连接通过,于是把这艰难的过程记录一下,希望对其他人能有所帮助。。。

更多推荐

数据库工具连接Mysql报Password authentication failed错误