MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)
本篇文章向大家介绍《MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)》,主要包括MySQL,具有一定的参考价值,需要的朋友可以参考一下。
楔子
由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能。而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能。 因此需要升级MySQL版本,升级的目标版本是MySQL 5.7.30(虽然最新版本已经到8.x,但是5.7基本够用了)。 发现在升级安装过程中,会有一些坑,所以使用本文记录一下。
卸载老版本
首先需要卸载老的版本,卸载其实也挺简单,只需要移除MySQL服务即可,首先打开CMD,然后cd到MySQL的bin目录,然后输入下面的命令移除MySQL服务:
mysqld --remove mysql //需要注意的是: “msyql” 是服务名称,安装的时候如果没有指定服务名称, //默认名称是MySQL(windows下不区分大小写); // 如果安装的时候指定了名称,上面的名称需要修改为该指定的名称。

需要注意的一点是,我们删除了MySQL服务之后,有可能在windows的服务的列表里面还有,保留在哪儿也没啥影响,但是如果你又洁癖,一定要删除,就需要去删除注册表中对应键,参考下图。当然对于我们升级来说,后续还需要安装windows服务,可以直接覆盖。注册表的图
然后删除老的MySQL相关文件夹,以及删除相关的环境变量的配置。
需要注意的是,如果数据文件和MySQL程序在一个文件夹下,需要保留数据
安装5.7.30版本
接下来就是安装5.7.30版本,第一步是下载。
下载MySQL
下载地址是:https://dev.mysql.com/downloads/mysql/
点击上面链接,进入到下载页面,由于最新的版本是8.x,所以默认是8.x的版本。可以通过点击“Looking for the latest GA
version ”选择版本,然后下载免安装版本:

解压MySQL
下载完成后,解压到你想要安装的目录,比如我的目录是:
D:Program Files (x86)mysql-5.7.30-winx64

配置环境变量
在系统变量path后面追加D:Program Files (x86)mysql-5.7.30-winx64bin,如图所示。

创建配置文件my.ini
5.7.30版本的安装包默认是不带配置文件my.ini的。所以需要创建自己创建一个my.ini的文件。手动创建my.ini文件,然后输入如下内容:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql安装目录 basedir=D:\Program Files (x86)\mysql-5.7.30-winx64 # 设置mysql数据库的数据存放目录 datadir=D:\Program Files (x86)\mysql-5.7.30-winx64\data # 运行最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 参加新表时将使用的默认存储引擎 default-storage-engine=INNODB
此处会有一些坑,需要避免。
my.ini注意事项一
my.ini必须保存为ANSI格式(配置文件默认就是是ANSI编码格式,可能会不小心保存为其他格式,比如UTF-8),否正会出现后续的服务不能启动的情况。 如果你不确定my.ini是什么格式,可以另存为:

my.ini注意事项二
如果是从低版本升级到5.7的版本,可能为了保留之前的配置,就直接把之前的配置文件拷贝过来。这个时候就要注意了,因为以前很多低版本的参数,已经不适合高版本的。如果不修改过来,就会导致后续的服务启动失败。
比如笔者遇到的一个导致错误的参数是:
#table_cache=256 // 低版本的 table_open_cache=256 // 高版本的
如果一定要保留老版本的配置,又对于新版本的参数修改不是很熟悉,那么可以再配置文件中把日志功能假设,这样再报错的时候,可以通过查看日志了解详情。 如下配置日志路径即可:
log_error=D:/mysql-5.7/error.log
然后启动失败后,可以通过日志查看报错,比如:

更多可能的错误参数:
unknown variable 'key-buffer=256M' //去掉改项即可。 unknown variable 'table-cache=512' //修改为table_open_cache即可。 unknown variable 'thread-concurrency=8' //去掉改项,5.7已结废弃。
windows 服务启动失败,不会把错误详情标识出来,只会简单说一句服务启动失败。 只能通过配置日志文件来查看。
安装MySQL服务
最重要的一步就是安装MySQL服务。 首先进入cmd界面,CD到MySQL的bin目录(注意此处一定要到bin目录下去执行),执行如下命令:
mysqld --install [服务名称,默认是MySQL]
截图如下:

执行命令后,会提示服务安装成功。
注意事项一
需要注意的是,有可能出现Install/Remove of the Service Denied! 的提示错误。
原因:普通用户模式权限下的cmd安装mysql会出现这样的报错提示。通过管理员模式运行cmd即可:

其他步骤如果出现没有执行权限的情况,也都请用管理员省份运行即可。
注意事项二
有些电脑会出现找不到MSVCP120.dll的错误:

这种错误是由于未安装 vcredist 引起的
下载 vcredist 地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784
安装,位置默认即可,安装成功之后,重新安装服务即可。
初始化MySQL
MySQL5.7是不带data目录的,所以需要初始化MySQL,生产data目录,也比较简单,执行如下命令即可:
mysqld --initialize-insecure --user=mysql
需要注意的是,有的文章介绍的是此处用 “mysqld --initialize”, “mysqld --initialize-insecure”和 “mysqld --initialize”的区别在于前者会创建一个空密码,而后者会创建一个随机密码。 因此用 “mysqld --initialize”,最好加上 “--console”,可以把随机密码打印出来(注意 “--console”仅限于windows)


--user=msyql 主要用于在linux或者unix系统下给与把data目录授权给mysql账号,在windows 下可以不必使用,带上也无所谓。
数据初始化参考链接:https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/data-directory-initialization.html
初始化完成后,会生成data目录。
注意事项一
如果初始化出现错误:“--initialize specified but the data directory has files in it. Aborting. ” 那是因为你可能手动创建了data目录,并且里面包含了文件(比如升级可能这样操作),此时要做的就是删除data目录即可,至于升级,可以后续考虑。
此时说的data目录,是指 my.ini文件里面 指定的目录 ,未必是mysql安装文件下的目录:
datadir=D:DevelopMySQLmysql-8.0.12-winx64data
启动MySQL服务
windows下启动MySQL服务,可以使用如下命令即可:
net start MySQL

设置MySQL服务密码
使用mysqladmin可以设置密码。启动MySQL服务之后,输入如下命令:

输入老的密码(通过前面操作,老密码为空),然后输入新的密码,确认新的密码,即可设置成功。
注意事项一
如果前面初始化的时候未初始化未空密码,又不小心忘记了初始化密码,会出现下面的问题,无法登陆及修改密码:
“Access denied for user 'root'@'localhost'”
通过如下步骤解决:
添加skip-grant-tables
再配置文件my.ini中添加skip-grant-tables:

重启MySQL服务
先停止MySQL服务,然后再启动MySQL服务,即可:

修改密码
首先登陆mysql,此时不需要密码,如下:

通过sql语句修改密码,首先 use mysql ;然后update 更新密码:

然后退出mysql即可。
删除skip-grant-tables 重启MySQL服务
首先从my.ini中删除skip-grant-tables ,然后 net stop mysql, net start mysql 重启服务。
MySQL老数据升级到5.7
要升级老数据,如果是从5.x版本升级上来,基本上只需要把相关的数据文件拷贝到data文件夹下。需要注意的是,如果使用了 innodb,还需要把“ibdata”等文件拷贝过来。 否正会报表不存在的情况:
error: 1146: Table 'a_content' doesn't exist
innodb是MYSQL数据库一种流行的数据库引擎,支持事务(行级),ibdata用来储存文件的数据,而库名的文件夹里面的那些表文件只是结构而已,由于新版的mysql默认试innodb,所以ibdata1文件默认就存在了,少了这个文件有的数据表就会出错。
如果升级过程中,存在数据损坏,可以使用repair命令进行修复:
repair table tablename
正常经过上述操作,就可以了,如果还有问题,可以尝试使用升级命令mysql_upgrade对数据进行升级(也建议使用改命令升级,不然后续出问题,可能会不好定位)
https://dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
//升级mysql,mysql_upgrade检查不兼容的表,更新grant表; mysql_upgrade -uroot -p
升级速度具体看data目录的大小情况而定。
以上全文。
更多精彩内容,请关注公众号“ITman彪叔”。

好了,本文到此结束,带大家了解了《MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

- 上一篇
- Explain-执行计划

- 下一篇
- MySQL死锁系列-常见加锁场景分析
-
- 阔达的鞋子
- 这篇技术文章出现的刚刚好,太细致了,很好,收藏了,关注师傅了!希望师傅能多写数据库相关的文章。
- 2023-02-04 11:50:16
-
- 轻松的小松鼠
- 很好,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢老哥分享文章内容!
- 2023-01-24 14:50:49
-
- 数据库 · MySQL | 23小时前 | 索引 数据类型 字符集 存储引擎 CREATETABLE
- MySQL新建表操作指南与建表技巧
- 462浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 条件判断
- CASEWHEN条件判断的嵌套使用详解与实战场景分析
- 469浏览 收藏
-
- 数据库 · MySQL | 1个月前 | java php
- CSV文件批量导入MySQL的性能优化秘籍大揭秘
- 289浏览 收藏
-
- 数据库 · MySQL | 1个月前 |
- GaleraCluster多主集群配置与冲突解决攻略
- 239浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 窗口函数实战
- MySQL窗口函数实战案例深度剖析
- 315浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 自定义函数
- MySQL插件开发入门:自定义函数(UDF)编写指南
- 184浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 笔灵AI生成答辩PPT
- 探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
- 20次使用
-
- 知网AIGC检测服务系统
- 知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
- 27次使用
-
- AIGC检测-Aibiye
- AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
- 34次使用
-
- 易笔AI论文
- 易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
- 43次使用
-
- 笔启AI论文写作平台
- 笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
- 36次使用
-
- golang MySQL实现对数据库表存储获取操作示例
- 2022-12-22 499浏览
-
- 搞一个自娱自乐的博客(二) 架构搭建
- 2023-02-16 244浏览
-
- B-Tree、B+Tree以及B-link Tree
- 2023-01-19 235浏览
-
- mysql面试题
- 2023-01-17 157浏览
-
- MySQL数据表简单查询
- 2023-01-10 101浏览