native链接mysql报错_[转]解决Navicat客户端链接MySQL8报错的问题,附一些常用命令...

一、为什么Navicat等客户端链接MySQL8会报错?

使用mysql,平时多数情况下我们还是喜欢用可视化的客户端登陆管理的,很多人都比较喜欢用navicat,具体为什么喜欢我就不多说什么了。一般服务器装好MySQL以后,我们习惯建一个具有远程登录权限的帐号,在MySQL 8服务器上,用老方法创建的帐号,可以用mysql命令行正常登入,但是用navicat等第三方软件登入却会提示错误。

a717b99ac39cb346d2b25b44872898fb.png

原因是MySQL8的新特性,MySQL8默认使用 caching_sha2_password 身份验证机制。旧客户端不支持这种验证,当然就无法登入了。

所以解决办法也很简单,只需要我们在服务器上用旧的认证机制(mysql_native_password)设置密码就可以了。旧模式不是MySQL8默认模式,所以需要在创建用户或者修改密码时,明确指定为mysql_native_password模式。

首先我们试验下,用默认模式创建用户,

执行 ALTER USER ‘root’@’%’ IDENTIFIED BY ‘aaabbb’; 创建的记录是这样的

466e1eab84ebdc24a1cc3c38228d85cc.png

这种情况下,客户端登入不会成功

如果在创建/或者修改命令中 用WITH mysql_native_password 指明密码模式,

例如ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘aaabbb’;

执行后的用户记录如下,可见plugin被设置为了mysql_native_password

5b487c8e543f7802b14e8defc65ddf92.png

此时再次测试,客户端就可以正常登入了。

5fa837d89de3c6318c8035a4cd6638b8.png

二、MySQL8一些简单的操作

2.1 完整的创建一个远程管理员帐号

2.1.1、创建一个可以远程登陆的root用户

CREATE USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;

注意@后面“%”允许远程登入,WITH mysql_native_password 修饰允许旧模式的客户端登入

2.1.2、为账户开放权限

grant all privileges on *.* to root@’%’;

如有必要,刷新权限

flush privileges;

2.2 创建一个普通用户并为其分配一个数据库

2.2.1 添加一般账户

CREATE USER ‘用户名’@’%’ IDENTIFIED WITH mysql_native_password BY ‘密码’;

2.2.2、创建新数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

或者干脆

CREATE DATABASE 数据库名;

以前常常还要指定默认utf8字符集,现在MySQL 8.0的默认字符集是utf8mb4,所以默认即可。

默认生成的数据库字符集是这样的:

71fc46d2e6cec00ffca3270dfc93e233.png

2.2.3、新账户授权新数据库

grant all privileges on 数据库名.* to 用户名@’%’;

为方便常常用户名和数据库名设为相同以便管理。

三、其他常用的命令

平时配置数据库少,很多命令不算熟悉,所以罗列起来,用的时候复制粘贴加修改是最方便的了。。。

-- 创建用户(WITH mysql_native_password 是可选的,为了适应客户端兼容性)

CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

-- 设置/修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

alter user 'yzd'@'%' identified by 'aaa';

-- 清除密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '';

UPDATE user SET authentication_string='' WHERE user='root';

-- 删除用户

drop user 用户名@ localhost;

Delete FROM mysql.user Where User="用户名" and Host=”localhost”;

-- 分配权限

grant all privileges on *.* to root@'%';

-- 刷新权限

flush privileges;

-- 创建数据库

CREATE DATABASE IF NOT EXISTS yzd DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

-- 查询数据库列表

show databases;

-- 查询数据表列表

show tables;

-- 查询用户列表

select host,user,plugin,authentication_string from mysql.user;

-- 查询当前用户名

select user();

-- 查询当前用户权限

show grants;

本文由 海拔科技 发布在 海拔科技,转载此文请保持文章完整性,并请附上文章来源(海拔科技)及本页链接。

原文链接:https://www.haibakeji.com/archives/327.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接本地MySQL数据库时出现了"Unable to load authentication plugin 'caching_sha2_password'"的错误提示。这个错误是由于MySQL 8.0版本引入了一个新的身份验证机制caching_sha2_password,而你的MySQL客户端无法加载这个插件导致的。 为了解决这个问题,你可以采取两种方式之一: 1. 安装MySQL 8.0或更新版本的客户端,这些版本的客户端已经支持新的身份验证机制caching_sha2_password。你可以通过访问MySQL的官方网站下载最新版本的MySQL客户端,并使用它来连接MySQL数据库。 2. 修改MySQL 8.0的密码加密方式。你可以按照以下步骤进行操作: a. 以管理员身份登录到MySQL服务器。 b. 执行以下命令来修改密码加密方式: ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 其中,'username'是你要连接MySQL的用户名,'localhost'是你要连接的主机名,'password'是你要设置的密码。 c. 刷新权限使修改生效: FLUSH PRIVILEGES; d. 然后你就可以使用修改后的密码连接MySQL数据库了。 通过以上两种方式之一,你应该能够成功解决"Unable to load authentication plugin 'caching_sha2_password'"的问题连接到本地MySQL数据库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [DBeaver连接MySQL报错:Unable to load authentication plugin ‘caching_sha2_password‘.](https://blog.csdn.net/momomuabc/article/details/128574508)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [问题MySQL 报错 Unable to load authentication plugin ‘caching_sha2_password‘ 的解决方案](https://blog.csdn.net/qq_36722955/article/details/128720577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mysql8用navicat可视化连接报错加密方式错误](https://download.csdn.net/download/qq_41975509/11117766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值