mysql8怎么选择密码
时间 : 2023-03-12 21:36:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL 8 中的密码被称作“MySQL 8 验证插件”。验证插件是一段代码,用于验证用户输入的密码是否正确。MySQL 8 提供了多个验证插件,包括:

1. mysql_native_password

2. sha256_password

3. caching_sha2_password

以上三种验证插件中,mysql_native_password 是默认的验证插件。

那么如何选择适合自己的验证插件呢?

1. mysql_native_password

mysql_native_password 是最古老的验证插件,它使用的是基于密码的身份验证方法。与 sha256_password 和 caching_sha2_password不同,mysql_native_password没有加密用户密码,因此它不是最安全的验证插件。此外,mysql_native_password 还需要允许不安全的连接,以便允许老版本的 MySQL 连接到 MySQL 8

2. sha256_password

sha256_password 使用 SHA-256算法为用户密码进行散列,这使得它比 mysql_native_password 更加安全。值得注意的是,sha256_password 不允许不安全的连接,这意味着只有 MySQL 8 客户端和驱动程序可以访问它。

3. caching_sha2_password

caching_sha2_password 是 MySQL 8 中最安全的验证插件,它使用 SHA-256 进行密码 哈希,在散列用户密码的同时,还缓存加盐哈希以提高性能。它还支持安全握手,这意味着它可以拒绝不安全的连接尝试。

因此,建议选择 caching_sha2_password 作为验证插件,因为它是最安全的验证插件,并支持安全握手以提高安全性。此外,如果不需要与老版本的 MySQL 进行兼容,则应禁用 mysql_native_password 插件,并仅使用 caching_sha2_password 插件。

要选择验证插件,请在 MySQL 配置文件中搜索“default-authentication-plugin”文本,并将其设置为所需的验证插件的名称。

总之,MySQL 8 提供了多个验证插件以适应不同的安全和兼容性需求。建议选择 caching_sha2_password 作为验证插件,以提高安全性。

MySQL 8 是当前最新版本的 MySQL 数据库管理系统,其默认密码加密方式与之前的版本不同。

在 MySQL 8 中,默认的密码加密方式是 caching_sha2_password,而不再是旧版本中的 mysql_native_password。

这意味着,如果你运行新的 MySQL 8 安装就会发现,当你创建一个新用户并尝试为该用户设置密码时, MySQL 8 将抛出一个错误:

Error 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这是由于新的密码加密方式与老的不同,导致 MySQL 8 要求用户在创建任何新用户和密码时采取不同的方法。

接下来,我们将介绍如何设置 MySQL 8 用户的密码。

1. 使用 ALTER USER 语句设置密码

要设置新用户的密码,可以使用 ALTER USER 语句:

```sql

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your_password';

这会使用当前会话的高速缓存 SHA-2 密码算法为用户 root@localhost 设置密码。确保你将 “your_password” 更改为新用户的实际密码。

2. 在 MySQL 8 中使用 mysql_native_password 加密方式

如果你仍然更喜欢使用旧的 mysql_native_password 加密方式,那么可以通过以下方法使其成为默认方式:

(1) 编辑 MySQL 配置文件 my.cnf 或 my.ini。

如果你使用 Linux,将 my.cnf 文件的路径设置为 /etc/mysql/my.cnf。

如果你是 Windows 用户,将 my.ini 文件的路径设置为 C:\Program Files\MySQL\MySQL Server 8.x\my.ini。

(2) 在 [mysqld] 部分添加或编辑以下行:

```ini

[mysqld]

default_authentication_plugin=mysql_native_password

(3) 保存文件并重新启动 MySQL 服务。

现在,当你创建一个新用户时,你将再次可以使用旧的 mysql_native_password 加密方式设置密码。

总结

MySQL 8 中的默认密码加密方式是 caching_sha2_password。你可以使用 ALTER USER 语句为新用户设置密码。如果你想更喜欢 mysql_native_password 加密方式,可以修改 MySQL 配置文件。