MySQL 管理运维:root 密码还可以这样改
在 MySQL 的管理和运维过程中,修改 root 用户的密码是一个常见的操作。
通常情况下,我们使用 MySQL 自带的命令来修改 root 用户的密码,例如:
1 | mysql -u root -p |
不过,为了确保用户安全,尤其是 root 用户密码的健壮性,MySQL 服务器默认启用了密码校验组件。
validate_password 组件
是的,这里的表述是“组件”,不再是“插件”。
1 | # ll *valid* |
从 MySQL 8.0 开始,MySQL Server 引入了基于组件的基础架构,用于提高服务器的可扩展性。
在服务器的插件目录下,可以看到下列组件包:
1 | [root@rocky9 plugin]# pwd |
值得注意的是,在 MySQL 8.0 中,validate_password 插件被重新实现为 validate_password 组件。 validate_password 插件已弃用;预计它会在 MySQL 的未来版本中被删除。
相关参数更名为以 validate_password.*
前缀。
1 | (root@localhost) [(none)]> show variables like 'validate_password%'; |
基于上述参数,我们在修改用户密码时需要注意密码的健壮性,可以通过下面这个函数来检查。
1 | (root@localhost) [(none)]> SELECT VALIDATE_PASSWORD_STRENGTH('ShawnYan@CN_MYSQL8!'); |
修改 root 密码
只是,在开发环境中,为了便于测试,我们可以临时将 root 密码改为空。
这里,将密码校验组件包改名,并重启 MySQL,检验功能会失效,但不影响 Server 正常启动。
1 | cd /usr/lib64/mysql/plugin/ |
1 | 2023-06-11T16:23:49.575004Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001126 - Can't open shared library '/usr/lib64/mysql/plugin/component_validate_password.so' (errno: 0 /usr/lib64/mysql/plugin/component_validate_password.so: cannot open shared object file: No such file or directory) |
如此,即可不考虑密码强度而直接修改 root 密码。
1 | (root@localhost) [(none)]> set password = ''; |
最后,这种方式仅限于开发调试,不推荐在生产环境操作。
- Title: MySQL 管理运维:root 密码还可以这样改
- Author: ShawnYan
- Created at: 2023-06-11 21:00:00
- Updated at: 2023-06-11 21:00:00
- Link: https://shawnyan.cn/2023/mysql/mysql-8-component_validate_password/
- License: This work is licensed under CC BY-NC-SA 4.0.
推荐阅读
if (hexo-config('comment.enable') == true && hexo-config('comment.system') != "") {
if (hexo-config('comment.system') == "waline") {
@require "./waline.styl"
} else if (hexo-config('comment.system') == "gitalk") {
@require "./gitalk.styl"
} else if (hexo-config('comment.system') == "twikoo") {
@require "./twikoo.styl"
}
}
.comments-container
display inline-block
margin-top $spacing-unit
width 100%
#comment-anchor
width 100%
height 10px
.comment-area-title
width 100%
margin 10px 0
font-size 1.38rem
color var(--default-text-color)
font-family 'Consolas', '宋体', sans-serif
font-weight bold
i
color var(--default-text-color)
+redefine-tablet()
margin 5px 0
font-size 1.2rem