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