native_password
是 MySQL 8.0 之前版本中默认的身份验证插件
连接到 MySQL 服务器:当客户端(如 MySQL Workbench、phpMyAdmin 或命令行工具)尝试连接到 MySQL 服务器时,服务器会要求客户端提供用户名和密码。客户端使用 native_password
插件对密码进行加密,然后将加密后的密码发送给服务器。
验证用户身份:服务器收到客户端发送的加密密码后,使用相同的加密算法对存储在用户表(mysql.user
)中的密码进行加密。然后,服务器将两个加密密码进行比较。如果它们匹配,说明客户端提供了正确的密码,服务器将允许客户端访问。
更改用户密码:当管理员或用户需要更改密码时,MySQL 会使用 native_password
插件对新密码进行加密,并将加密后的密码存储在用户表中。
需要注意的是,从 MySQL 8.0 开始,默认的身份验证插件已更改为 caching_sha2_password
。这是因为 native_password
使用的加密算法被认为在现代安全标准下不够强大。如果你需要在 MySQL 8.0 及更高版本中使用 native_password
插件,可以在创建用户或更改用户密码时显式指定插件。例如:
CREATE USER 'myuser'@'localhost' IDENTIFIED WITH native_password BY 'mypassword';
或者:
ALTER USER 'myuser'@'localhost' IDENTIFIED WITH native_password BY 'mypassword';