MySQL将身份验证类型从标准更改为caching_sha2_password

时间:2018-04-19 23:07:38

标签: mysql mysql-workbench

我在计算机上设置了一个新的MySQL实例,每次添加用户时都会将身份验证类型设置为caching_sha2_password

即使我将身份验证类型设置为" Standard",然后在我保存用户时更改它,也会发生这种情况。我还将默认身份验证插件更改为" mysql_native_password",但它仍然继续这样做。

使用caching_sha2_password,我无法从.net核心连接到数据库,因为我收到错误声明:

  

MySqlException:身份验证方法' caching_sha2_password'任何可用的插件都不支持

如何使用标准身份验证类型保存用户?

6 个答案:

答案 0 :(得分:44)

我今天遇到了同样的问题。我发现修复它的唯一方法是:

  1. 执行安装文件
  2. 在mysql服务器上选择“重新配置”
  3. 在“身份验证方法”选项卡中,选择“使用旧版身份验证方法”
  4. 应该解决你的问题。

答案 1 :(得分:2)

运行

mysql> CREATE USER ‘username’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

答案 2 :(得分:2)

使用mysql_native_password重置用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';

答案 3 :(得分:1)

您也可以使用MySQL Workbench来做到这一点:

“用户和私人身份”->“添加帐户”->身份验证类型:“标准”

此用户现在可以使用默认登录名登录,即phpMyAdmin。

答案 4 :(得分:1)

import mysql.connector

def connect():
    conn = mysql.connector.connect(host='localhost',
    database='mydb',
    user='root_new',
    password='root_new')
    if conn.is_connected():
       print('Connected to MySQL database')

if name == 'main':
   connect()

Output : Connected to MySQL database

Follow the Screenshots 

1.Stop database server in preferences for MacOS.
2.initialise DB with legacy authentication.
3.Open mysqlWorkBench and Create a new user with standard authentication.
4.Create a new schema(DB) in sqlWorkbench.
5.Execute python Code in Eclipse.

Step_1

Step_2

Step_3

Step_4

Step_5

答案 5 :(得分:0)

对于使用MySQL Workbench 8.0 CE仍在挣扎中的那些人,以下对我有用:

  1. 在导航器下,单击管理Administration under Navigator preview,然后选择选项文件。
  2. 管理-选项文件将打开。在“安全性”选项卡下,向下滚动,直到看到“默认身份验证插件”。我的是在caching_sha2_password上。将其更改为mysql_native_password,单击“应用”,然后重新启动MySQL Workbench对我有用。

Administration - Options File preview

我必须删除并重新添加用户。它不会自动将用户的身份验证类型更改回caching_sha2_password,而是将其保持在标准状态。