此过程说的mysql解压版的安装,感觉安装5.7坑太多,自己走了不少弯路,分享出来给大家

 废话不多说,直奔主题


我下载的mysql5.7.20是从官网下载的,解压后我发现里面并没有my-default.ini配置文件,个人感觉这个是最大的坑之一

于是我就自己创建了一个这个文件,问题就是出在文件名上    我最开始的新建文件名就是my-default.ini,结果按照正常步骤(自己百度)安装,结果安装成功了,连接什么的都好用 。


然后我开始建库,建表,问题就出在建表这里,每次跑完sql都能成功,但是跑成功后面都会跟着一个1055的error, 网上百度一个是sql-mode的问题,于是我就改了配置文件中sql-mode,可是之后继续跑还是出这个问题,然后用sql更改了sql-mode,结果当时的确是好使,可是新建个查询还是会报这个问题  


于是我怀疑是不是my-default配置文件没有引用到, 可是我的data目录确实是取得my-default文件中的datadir=D:\\mysql-5.7.20\\data,看来问题并不是出现在这里,我反复重启服务,结果一直是有问题,然后就继续百度寻找蛛丝马迹。从效果上看我的my-default文件引到了,但是sql-mode参数不是从这个文件中取的,于是乎我就怀疑mysql5.7.20自动包含了my-default文件,我新添加的文件只是改变basedir这种参数,最后我把my-default文件删除了,自己新建了一个my.ini文件,然后按照正常步骤重新安装,结果这次安装成功。


总结: 安装5.7.20版本时候,直接在新建一个my.ini文件,然后在安装,其他步骤自己百度,注意sql-mode的参数,我把我的配置文件贴在下面,路径自己更改下就ok!



[mysqld]
 # 设置mysql客户端默认字符
 character_set_server=utf8
 #设置3306端port = 3306
 port=3306
 # 设置mysql的安装目
 basedir=D:\\mysql-5.7.20
 # 设置mysql数据库的数据的存放目
 datadir=D:\\mysql-5.7.20\\data
 # 允许最大连接
 max_connections=200
 # 服务端使用的字符集默认为8比特编码的latin1字符character-set-server=utf8
 # 创建新表时将使用的默认存储引
 default-storage-engine=INNODB


 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


 explicit_defaults_for_timestamp=true