黄东旭解析 TiDB 的核心优势
636
2023-04-28
MySQL 5.7版本新特性(三)
本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起。根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来产生兼容性问题。
本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。本节开始讲5.7版本中的新特性。
1、安全性
a. 用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是 mysql_old_password,不再支持旧密码格式;
b. 增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式;
c. 使用 mysql_install_db 初始化时,默认会自动生成随机密码,并且不创建除 root@localhost 外的其他账号,也不创建 test 库;
【新特性实践】
执行 mysql_install_db 进行新实例初始化:
可以看到提示 mysql_install_db 已经不再推荐使用了,建议改成 mysqld --initialize 完成实例初始化。
改成 mysqld --initialize 后,如果 datadir 指向的目标目录下已经有数据文件,则会有类似提示:
因此,需要先确保 datadir 目标目录下是空的,避免误操作破坏已有数据。
另外,在初始化时如果加上 --initial-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中(在5.6版本中是放在 ~/.mysql_secret 文件里,更加隐蔽,不熟悉的话可能会无所适从)
初始化完毕后,如果没使用新版本的客户端登入,还会报告类似下面的错误:
mysql -uroot -p Enter password: ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
上面的错误提示意思是需要用当前版本的客户端登入,因为新用户登入后需要立刻修改密码,否则无法继续后续的工作:
修改完密码后,就可以继续使用旧版本的客户端工具了。
下一期,我们讲讲5.7的其他新特性。
参考资料:
官方文档:1.4 What Is New in MySQL 5.7
整理的比较仓促,若有遗漏或失误,请留言回复,谢谢!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。