安装MySQL5.7.18遇到的坑

本文记录了在Win7系统上安装两个不同版本MySQL的过程及遇到的问题,包括DLL缺失、服务名冲突、Navicat导入错误等,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近才注意到MySQL的各个版本之间差别还挺大的,比如5.5.x版本的timestamp类型列只能有一个设置为default  CURRENT_TIMESTAMP的,于是尝试了换成一个新版本是mysql,但是不想动本地原来的数据库,于是想在我的win7系统上安装两个MySQL数据,于是踩了以下好几个坑。
    我安装的版本是mysql-5.7.18-winx64解压版,另外网上安装的教程很多,我就不在这里废话了。我参考了一个写的比较详细文档:[MySQL安装教程](http://www.cnblogs.com/tongy0/p/6739188.html),写的不错,不过这里说的my.ini放在bin下不是很准确,实际上放在和bin同级别的主目录下,当然了这个目录位置是可以配置的。
    坑一:运行mysqld直接报msvcr120.dll找不到,解决方式:网上有可以下载到这个文件,然后拷贝到相应的目录:32位的windows拷贝到C:\Windows\System32下,64位的拷贝到C:\Windows\SysWOW64。然后在开始->启动运行“regsvr32 msvcr120.dll”完成注册,很多帖子不讲这个,不知道居心何在?
    坑二:由于我本地已经安装了MySQL,因此这个新安装的名字服务不能叫mysql,于是我在用mysqld -install安装的时候起名叫:mysql5.7,结果启动的时候发现说“发生系统错误 2。系统找不到文件。”。网上很多人说是因为注册表的原因,老夫查了注册表发现的确注册表的“ImagePath”属性指定的mysqld可执行文件不对,指向了C盘,我的实际上是在D盘,于是乎按照网上的要求修改了,结果不报文件找不到的错误了,但是启动还是失败,更加不幸的是这次啥错误也不报,只是报启动失败,后来我删掉重新搞,最后我仔细比较发现网友安装的时候起的服务名都没有“.”,于是我这次起名叫“mysql7”,果然搞定了,服务启动成功,很显然这是无意中碰到的一个bug,网友说的是一种情况,我遇到的又是更加复杂的一种情况,结论:服务的名称不要加“.”,我觉得最好也不要用其他的特殊符号(这里估计操作系统有要求,没有细查,若干年前遇到一个类似的问题,是因为起的服务名称过长)。
    坑三:在使用“Navicat”导入的时候,报“2006 - mysql server has gone away”错误,这次是因为sql_mode设置的不对,这个原因是:MySQL5.7的默认值不兼容的问题。解决办法:在[mysqld]下面添加如下列:“sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
    坑四:2006 - mysql server has gone away,这个是因为max_allowed_packet的值太小,解决办法,在[mysqld]下面添加如下列:max_allowed_packet = 256M,这样导入数据的速度也明显提高。
    坑五:1265 - Data truncated for column,这是因为倒出的数据列的值不对,比如性别使用的是enum类型的,但是导入的数据值却是空。我这里用Navicat导入psc格式的备份数据,解决办法:使用Navicat备份里的“提取SQL”导出到文本文件中修改下这个列的值即可。
    也没有啥技术含量,生活不易,为了让大家早点下班,我就记下这个,其他同仁就不用再跳坑了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值