Navicat在连接MySQL时报错-2059

本文介绍如何将MySQL8及更高版本的用户登录密码加密规则从caching_sha2_password更改为mysql_native_password,包括详细步骤和命令行操作指导。

解释原因:据说,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 现在说第二种方式 
命令行进入MySQL数据库

mysql -u root -p;

然后输入root账户密码,


输入以下指令,逐行输入,每行后加一个回车
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;      #修改加密规则 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';     #更新一下用户的密码 (password为native登录使用的密码,根据自己需要修改)
FLUSH PRIVILEGES;    #刷新权限 

进入native,使用更新过的账户密码

 

 

### 误 2003 的原因分析 误 2003 表示 Navicat 无法连接MySQL 数据库,通常是因为网络连接问题或服务器配置不正确。具体来说,可能是以下原因之一: - MySQL 服务未启动。 - MySQL 配置文件中限制了绑定地址(`bind-address`),导致外部连接被拒绝。 - 防火墙阻止了连接请求。 - 用户权限不足,无法从远程地址访问数据库--- ### 解决方案 #### 1. 检查 MySQL 服务是否运行 确保 MySQL 服务已启动。可以通过以下命令检查服务状态: ```bash sudo systemctl status mysql ``` 如果服务未运行,可以使用以下命令启动服务: ```bash sudo systemctl start mysql ``` #### 2. 修改 MySQL 配置文件 MySQL 默认可能将 `bind-address` 设置为 `127.0.0.1`,这会限制 MySQL 只能接受本地连接。需要修改配置文件以允许远程连接。编辑 MySQL 配置文件: ```bash sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到 `bind-address` 参数,并将其注释掉或更改为 `0.0.0.0`,如下所示: ```ini # bind-address = 127.0.0.1 bind-address = 0.0.0.0 ``` 保存并退出后,重启 MySQL 服务以应用更改: ```bash sudo systemctl restart mysql ``` #### 3. 授予用户远程访问权限 在 MySQL 中执行以下 SQL 命令,为用户授予远程访问权限。假设用户名为 `myuser`,密码为 `123456`: ```sql USE mysql; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述命令的作用是为用户 `myuser` 授予从任意 IP 地址(`%` 表示任意)访问数据库的权限,并刷新权限表以使更改生效[^2]。 #### 4. 检查防火墙设置 如果服务器启用了防火墙,确保允许 MySQL 的默认端口(3306)通过。可以使用以下命令打开端口: ```bash sudo ufw allow 3306/tcp ``` 或者,如果使用的是 `iptables`,可以添加以下规则: ```bash sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT ``` #### 5. 测试连接 完成以上步骤后,在 Navicat 中重新配置连接信息,确保主机地址、端口号、用户名和密码正确无误。然后点击测试连接按钮验证是否成功。 --- ### 注意事项 - 如果仍然无法连接,请检查 MySQL 日志文件(通常位于 `/var/log/mysql/error.log`),查看是否有相关误信息。 - 确保客户端和服务器之间的网络连通性正常,可以通过 `ping` 或 `telnet` 测试目标服务器的 3306 端口是否开放: ```bash telnet <服务器IP> 3306 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦岭深处小农民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值