文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  原生可插拔身份验证

8.4.1.1 原生可插拔身份验证

MySQL 包含一个 mysql_native_password 插件,该插件实现了原生身份验证;也就是说,身份验证基于引入可插拔身份验证之前使用的密码散列方法。

注意

mysql_native_password 身份验证插件已弃用,并将在未来版本的 MySQL 中删除。

下表显示了服务器端和客户端的插件名称。

表 8.15 原生密码身份验证的插件和库名称

插件或文件 插件或文件名
服务器端插件 mysql_native_password
客户端插件 mysql_native_password
库文件 无(插件是内置的)

以下部分提供了特定于原生可插拔身份验证的安装和使用信息

有关 MySQL 中可插拔身份验证的一般信息,请参阅 第 8.2.17 节“可插拔身份验证”

安装原生可插拔身份验证

mysql_native_password 插件以服务器和客户端形式存在

  • 服务器端插件内置于服务器中,但默认情况下处于禁用状态。要启用它,请使用 --mysql-native-password=ON 启动 MySQL 服务器,或者在 MySQL 配置文件的 [mysqld] 部分包含 mysql_native_password=ON

  • 客户端插件内置于 libmysqlclient 客户端库中,并且可用于链接到 libmysqlclient 的任何程序。

使用原生可插拔身份验证

MySQL 8.4(及更高版本)中的 MySQL 客户端程序默认使用 caching_sha2_password 进行身份验证。如果需要,请使用 --default-auth 选项将 mysql_native_password 设置为默认的客户端身份验证插件,如下所示

$> mysql --default-auth=mysql_native_password ...
禁用原生可插拔身份验证

在 MySQL 8.4 中,默认情况下禁用 mysql_native_password 服务器端插件。要保持禁用状态,请确保在启动服务器时未指定 --mysql-native-password 选项。使用 --mysql-native-password=OFF 也可以达到此目的,但不是必需的。此外,不要在 MySQL 配置文件中启用 mysql_native_password 以保持禁用状态。

禁用插件后,所有依赖于该插件的操作都将无法访问。具体来说

  • 使用 mysql_native_password 进行身份验证的已定义用户帐户在尝试连接时会遇到错误。

    $> MYSQL -u userx -p
    ERROR 1045 (28000): Access denied for user 'userx'@'localhost' (using password: NO)

    服务器会将这些错误写入服务器日志。

  • 尝试创建新用户帐户或更改使用 mysql_native_password 标识的现有用户帐户也会失败并发出错误。

    mysql> CREATE USER userxx@localhost IDENTIFIED WITH 'mysql_native_password';
    ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
    mysql> ALTER USER userxy@localhost IDENTIFIED WITH 'mysql_native_password;
    ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

有关启用插件的说明,请参阅 安装原生可插拔身份验证