Navicat无法远程连接与本地连接MySQL服务器解决方法

方法一:

使用Navicat远程连接MySQL服务器时,提示如下图情况:

Navicat无法远程连接与本地连接MySQL服务器解决方法_第1张图片

根据查阅不同资料发现,这个问题是因为root用户使用的加密方式不同,需将其加密方式改为mysql_native_password,即可实现远程连接MySQL服务器。

那么,怎么来修改root用户的Authentication plugin呢?

首先我们先来查看一下root用户的相关信息。

  1. 启动MySQL:net start mysql
  2. 登录MySQL:mysql -uroot -p(root用户密码);
  3. 查看MySQL中含有哪些数据库:show databases;
    Navicat无法远程连接与本地连接MySQL服务器解决方法_第2张图片
  4. 选择MySQL数据库查看:use MySQL
  5. 查看数据库中的数据表:show tables;
    Navicat无法远程连接与本地连接MySQL服务器解决方法_第3张图片
  6. 有一个user数据表,我们创建用户的信息都在user数据表内,先查看关于用户的部分信息:select host,user,plugin from user;
    Navicat无法远程连接与本地连接MySQL服务器解决方法_第4张图片
  7. 找到了关于Navicat无法连接数据库服务器的根本问题所在了。
  8. 关闭MySQL服务:net stop mysql。

现在我们来修改一下plugin的加密方式吧。

注意:不能使用update user set plugin=‘mysql_native_password’语句。虽然同样也是更改了plugin加密方式,但是实质上的Authentication plugin依然是caching_sha2_password。

所以我们需要使用如下命令更改:

alter user ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY '你的root用户密码'
Navicat无法远程连接与本地连接MySQL服务器解决方法_第5张图片

更改成功,最后使用flush privileges进行更改的保存。

我们来使用navicat连接下数据库服务器看看。

Navicat无法远程连接与本地连接MySQL服务器解决方法_第6张图片

连接成功。

方法二:

解决用navicate远程连接数据库出现1045 access denied for user 'root'@'localhost

在MySQL命令行中输入:

SET PASSWORD FOR 'root'@'%'=PASSWORD('123456');

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY'123456';

FLUSH PRIVILEGES;

连接成功。

附录:

Navicat破解软件链接:https://blog.csdn.net/qq_16093323/article/details/79228481

你可能感兴趣的:(服务器)