本文将和大家分享5.7的新特性,不过先从即将删除的特性和不再推荐的特性说起。根据这些情况,我们应该不再在新版本和以后的版本中使用它,以免以后出现兼容性问题。 本文基于MySQL-5.7.7-rc版本,后续可能会有更多改动。本节从5.7版中的新功能开始。 1。安全 a。用户表mysql.user的plugin字段不允许为空,默认值为mysql_native_password而不是mysql_old_password,不再支持旧密码格式; b。添加密码过期机制,过期后需要修改密码,否则可能会被禁用或进入沙盒模式;创建测试库; 【新功能实践】 执行mysql_install_db初始化一个新的实例: [yejr@imysql.com]#./bin/mysql_install_db--user=mysql--datadir=/data/mysql/2015-06-2413:55:29[WARNING]mysql_install_dbisdeprecated。请考虑切换到mysqld--initialize2015-06-2413:55:38[错误]子进程:/opt/17173_install/mysql-5.7.7-rc-linux-glibc2.5-x86_64/bin/mysqldterminatedprematurewithrno=322015-06-2413:55:38[错误]无法执行/opt/17173_install/mysql-5.7.7-rc-linux-glibc2.5-x86_64/bin/mysqld--bootstrap--datadir=/data/mysql--lc-messages-dir=/usr/share/mysql--lc-messages=en_US--serverlogbegin--mysqld:[Warning]--bootstrapisdeprecated.Pleaseconsiderrusing--initializeinstead--serverlogend-- 可以看到不再推荐mysql_install_db。建议改为mysqld--initialize完成实例初始化。 改成mysqld--initialize后,如果datadir指向的目标目录下已经存在数据文件,会出现类似的提示: [yejr@imysql.com]#./bin/mysqld--user=mysql--basedir=/opt/17173_install/mysql-5.7.7-rc-linux-glibc2.5-x86_64/--datadir=/data/mysql--initial--initialize-insecure2015-06-24T06:05:05.533588Z0[ERROR]--initializespecifiedbutthedatadirectoryhasfilesinit.Aborting.2015-06-24T06:05:05.533627Z0[ERROR]Aborting 因此,你需要确保datadir目标目录为空,以免误操作损坏现有数据。 另外,初始化时如果加上--initial-insecure,会创建一个空密码的root@localhost账号,否则会创建一个有密码的root@localhost账号,直接写密码在log-error日志文件中(5.6版本是放在~/.mysql_secret文件中,比较隐蔽,不熟悉的可能一头雾水)[yejr@imysql.com]#./bin/mysqld--user=mysql--basedir=/opt/17173_install/mysql-5.7.7-rc-linux-glibc2.5-x86_64/--datadir=/data/mysql--initial2015-06-24T06:14:31.458905Z0[警告]--secure-file-priv的不安全配置:当前值不限制生成文件的位置。考虑将其设置为有效的非空路径。 初始化完成后,如果不使用新版客户端登录,会报类似下面的错误: mysql-uroot-pEnterpassword:ERROR1862(HY000):Yourpasswordhasexpired.Tologinyoumustchangeitusingacclientthatsupportsexpiredpasswords。 以上错误信息的意思是需要用当前版本的客户端登录,因为新用户登录后需要马上修改密码,否则后续工作无法继续:[(root@imysql.com)]>usemysqlERROR1820(HY000):YoumustSETPASSWORDbeforeexecutingthisstatement[(root@imysql.com)]>setpassword=password('abcd');QueryOK,0rowsaffected,1warning(0.00sec) 修改密码后,可以继续使用旧版本的客户端工具。 下一期我们会聊聊5.7的其他新特性。 参考资料: 官方文档:1.4WhatIsNewinMySQL5.7 编译比较仓促。如有遗漏或错误,请留言回复,谢谢!
