Navicat远程连接腾讯云MariaDB报错——1045:Access denied for user ‘root’@’localhost’

问题

  • 在windows上用Navicat远程连接腾讯云MariaDB时,编辑完ssh和数据库连接配置后,连接时报错——1045:Access denied for user ‘root’@’localhost’

在这里插入图片描述

错误原因

  • 当登录MySQL数据库出现 Error 1045 错误时,表明你输入的用户名或密码错误被拒绝访问了;MySQL服务搭建后,默认root用户是不能进行远程访问连接的。

解决

  • 一开始以为是腾讯云的安全组没有开放3306端口,但是修改安全组之后,上面的问题依旧存在。经过学习,了解到两种解决办法
    • 改表法:当登录MySQL数据库出现 Error 1045 错误时,表明你输入的用户名或密码错误被拒绝访问了;MySQL服务搭建后,默认root用户是不能进行远程访问连接的。
    • 授权法:授权格式(mysql中不区分大小写):GRANT 权限 ON 数据库.* TO ‘用户名’@ ‘登录主机’ IDENTIFIED BY ‘密码’;

授权法实际操作:

  1. 开始 --> cmd --> service mariadb stop (停用MySQL服务 没启动的可以省略)
  2. 找到linux下MariaDB安装路径下的/etc/my.cnf
  3. 打开 my.cnf 找到 [mysqld] 然后在下面加上这句: skip_grant_tables (意思是启动MySQL服务的时候跳过权限表认证 )
  4. 然后就启动数据库修改密码了 (注意修改密码这一步是必须的,无论之前是否修改过密码
  5. service mariadb start (启动MySQL服务)—> mysql -u root -p (输入之前的数据库密码)
  6. 输入use mysql; (连接权限数据库)。
  7. 改密码:update user set password=password(“123”) where user=“root”;(别忘了最后加分号) 。
  8. 刷新权限:flush privileges;
  9. 退出 quit。
  10. 将第3 步的 my.cnf里的 skip_grant_tables 去掉(启动MySQL服务的时候不能让他跳过权限表认证 )
  11. 重启MySQL ,再进入,使用用户名root和刚才设置的新密码123就可以登录了。

连接成功

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐