在连接到 MySQL 数据库时遇到了一个身份验证插件加载错误。错误消息中提到了 caching sha2 password
插件无法加载,并以 @Xeegeeeg
结束。
这个错误通常发生在使用旧版本的 MySQL 客户端连接到新版本的 MySQL 服务器时。在新版本的 MySQL 中,默认启用了 caching_sha2_password
身份验证插件,而旧版本的客户端可能不支持该插件,导致无法成功连接。
有几种解决方法可以尝试:
更新 MySQL 客户端:尝试使用最新版本的 MySQL 客户端连接到服务器,以确保兼容性。
更改身份验证插件:在 MySQL 服务器上更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件(例如
mysql_native_password
)。你可以编辑 MySQL 配置文件(通常是my.cnf
或my.ini
),找到并修改default_authentication_plugin
参数的值。创建新用户:在 MySQL 服务器上创建一个新用户,将其身份验证插件设置为与旧版本的客户端兼容的插件,然后使用该用户进行连接。
方法一:更改身份验证插件:在 MySQL 服务器上更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件(例如
mysql_native_password
)。你可以编辑 MySQL 配置文件(通常是my.cnf
或my.ini
),找到并修改default_authentication_plugin
参数的值。或者打开mysql终端进行更改默认的身份验证插件,将其设置为与旧版本的客户端兼容的插件。以下是终端操作
注意以下的username和password可以自行换成自己的。或者直接用也可以
要创建一个新用户并为其授予查看所有表的权限,你可以使用以下命令:
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
通过 GRANT
命令授予该用户在本地访问数据库中的所有表的 所有权限
GRANT All ON *.* TO 'username'@'localhost';
权限生成
FLUSH PRIVILEGES;
(下面的是只能select权限,如果要所有的权限,上面的即可)
这将创建一个名为 username
的新用户,并使用 mysql_native_password
身份验证插件进行身份验证。然后,通过 GRANT
命令授予该用户在本地访问数据库中的所有表的 SELECT
权限。最后,使用 FLUSH PRIVILEGES
命令刷新权限以使更改生效。
请注意,上述命令中的 'localhost'
表示该用户只能在本地连接到 MySQL 数据库。如果你希望允许远程连接,请将 'localhost'
替换为相应的 IP 地址或主机名。
GRANT SELECT ON *.* TO 'username'@'localhost';
权限生成
FLUSH PRIVILEGES;
如果你只想允许该用户访问特定的数据库和表,而不是所有的表,可以将 *.*
替换为 database_name.table_name
。例如,如果要访问名为 healtha
数据库中的所有表,可以使用以下命令:
GRANT SELECT ON healtha.* TO 'username'@'localhost';
记得根据实际需求和安全性考虑,仅授予给予用户所需的最小权限。
方法二:创建新用户:在 MySQL 服务器上创建一个新用户,将其身份验证插件设置为与旧版本的客户端兼容的插件,然后使用该用户进行连接。
创建新用户并将其身份验证插件设置为与旧版本的客户端兼容的插件,可以通过 MySQL 的命令行工具或者 MySQL Workbench 等 GUI 工具实现。
以下是通过 MySQL 命令行工具创建新用户的步骤:
以具有管理员权限的账户登录 MySQL 数据库。在命令行中输入以下命令,并输入管理员账户的密码:
mysql -u root -p
创建一个新用户。在命令行中输入以下命令:
CREATE USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';
其中,username
是你要创建的用户名,password
是该用户的密码。注意,在这里使用了 mysql_native_password
身份验证插件,它是与旧版本的 MySQL 客户端兼容的插件。
授予该用户访问数据库的权限。在命令行中输入以下命令,将用户授权给访问指定的数据库:
GRANT ALL PRIVILEGES ON database_name.* TO 'username';
其中,database_name
是你要授权的数据库名,username
是你刚刚创建的用户名。
刷新权限。在命令行中输入以下命令,以使更改生效:
FLUSH PRIVILEGES;
现在,你可以使用刚刚创建的用户连接到 MySQL 数据库,并且该用户的身份验证插件是与旧版本的 MySQL 客户端兼容的插件。