关于mysql5.7的一些变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql5.7的一些变化相关的知识,希望对你有一定的参考价值。

最近接了个项目,使用的数据库是5.7的,开始没太在意,但是在接手的过程中发送了些小插曲,特意记录下来。

首先,我想自己安装个noinstall版本的,结果发信下载下来的和之前版本的不一样,没有data目录,my.ini 里几乎没有内容,看来使用以前的办法是不行了,看了下官方的文档。基本有下面3步需要做,

  • 确定好mysql的根目录,mysql的数据存储目录,按我的情况 D:/mysql 是根目录,我自己在这个目录下建了个data目录做数据存储目录 D:/mysql/data ,然后配置在my.ini 的文件里。

basedir = "D:/MySql-5.7" datadir = "D:/MySql-5.7/data" port = 3307

  • 初始化数据库,需要在D:/mysql/bin 目录下,注意是bin目录下, 执行脚本命令: mysqld.exe --initialize --console。执行完后会有下面的类似结果出现。最后的是root用户的密码,需要记下来。而且我接下来使用Mysql WorkBench 连接的时候提醒,需要修改初试密码才能连接,这个不知道在别的软件上是不是也存在,因为Workbench是不能看到mysql库的。技术分享
  • 最后其实就可以启动mysql了,使用命令 mysqld.exe ,然后使用命令行连接 mysql.exe -P3307 -p,回车,然后输入上面图片里的密码。

修改密码的时候又遇到一个问题,5.7的版本里已经没有password字段了。而是出现了authentication_string,password_expired,password_last_changed,password_lifetime 这几个字段,修改当前登录的root可以直接使用 set password=password(‘新密码‘); flush privileges; 然后就生效了。这时也可以使用Mysql Workbench连接了。其他的用户我试了也可以把 authentication_string 当成以前的password 字段来修改密码,例如 update user set authentication_string=password(‘new_pwd‘) where User=‘root‘。然后flush privileges。来使之生效。其他的字段再研究。

搜了下还有些有意思的新东西,下面的是摘自其他博客的。

一个是支持json,直接有个json类型,一般的客户端软件还不支持,手动建了一个,打算用workbench修改,直接报定义错误,这个换了个新的版本 6.3.7就支持了。

在ONLY_FULL_GROUP_BY中具有更高的自由度

在InnoDB中支持空间数据类型

更好地支持对亚洲语言的处理

具体看这里吧

以上是关于关于mysql5.7的一些变化的主要内容,如果未能解决你的问题,请参考以下文章

MySQL5.7源码安装问题汇总

Mysql5.7.20安装随笔

mysql5.7 MGR配置

CentOS7.7中安装MySQL5.7教程(超详细)

关于mysql5.7的160万qps

MySQL5.7解压版安装教程