【mysql升级步骤】windows mysql版本升级 ,mysql 5.6 升级到5.7.27
最近博主由于工作原因需要把之前安装好的的mysql 5.6.44版本卸载,然后安装mysql 5.7.*版本。
前提:为什么要升级到5.7版本?
因为博主在5.6版本上执行脚本时候报出异常:to your MySQL server version for the right syntax to use near 'json DEFAULT...
大概意思是5.6版本不支持原生json 数据的插入
度娘说:MySQL5.7版本终于支持了原生的JSON格式,即将关系型数据库和文档型NO_SQL数据库集于一身。
链接地址:http://www.bubuko.com/infodetail-1777950.html
所以不得已要升级到5.7,期间走了很多弯路,遇到很多坑,现总结如下,希望能帮助到你:
安装过程十分艰辛,遇到了好几个错误总结如下:
1:Can't connect to MySQL server on 'localhost' (10061)
2:-initialize specified but the data directory has files in it. Aborting
3:TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults
4:Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
解决方案,无非就是需要注意几点:
1:某些命令一定要在管理员权限下执行,就是用管理员模式开启命令提示符
2:某些命令一定要在mysql/bin 目录下执行,文章中有标出
3:mysql 5.7默认是无data文件夹的,net start mysql #启动mysql 命令一定要保证有data文件夹
4:mysql 5.7.27版本 my-default.ini 不能写port=3306 不然会报错
5:有时候错误需要在my-default.ini 文件中加入explicit_defaults_for_timestamp=true
6:查看mysql启动错误命令 mysqld --console
7:如果遇到中途的mysql配置路径错误导致服务中存在mysql
(如:mysqld install MySQL --defaults-file="D:\mysql5.7.27\mysql-5.7.27-winx64\my-default.ini" #安装新版本mysql 这里边的ini路径输入错误后 回车,系统服务中会存在mysql,但是启动不了),
执行sc delete mysql 删除不掉服务的情况,需要打开任务管理器中找到mysql进程关闭之后再 执行sc delete mysql就可以成功删除mysql 服务了
8:如果在安装过程中某一步错误,导致需要重新执行安装mysql命令,切记需要保证(D:\mysql5.7.27\mysql-5.7.27-winx64\data\)data 路径下为空,如果有文件要删除后执行安装命令。
第一步:官网下载mysql5.7.27 zip文件,官方地址:https://dev.mysql.com/downloads/mysql/


有32位和64位两个版本,博主64位点击下载
第二步:下载好之后解压

第三步:文件夹里面默认没有my-default.ini文件,需要我们新建一个basedir和datadir需要改成你安装的路径地址,以下是我的my-default.ini配置
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置mysql的安装目录
basedir = D:\Mysql5.27\mysql-5.7.27-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\Mysql5.27\mysql-5.7.27-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎
# 为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 开启查询缓存
explicit_defaults_for_timestamp=true
MySQL 5.7版本中sql_mode更加严格。解释下各个mode的含义: ONLY_FULL_GROUP_BY 不要让GROUP BY部分中的查询指向未选择的列
STRICT_TRANS_TABLES 为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式
NO_ZERO_IN_DATE 在严格模式,不接受月或日部分为0的日期
NO_ZERO_DATE 在严格模式,不将 '0000-00-00'做为合法日期
ERROR_FOR_DIVISION_BY_ZERO 在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误
NO_AUTO_CREATE_USER 防止GRANT自动创建新用户,除非还指定了密码
NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎 注意:在一个主从环境下,为保证数据的一致性,一定要设置主从的sql_mode一样,在数据迁移的时候也要保证sql_mode的一致,不然复制和迁移遇到上面的限制均会失败,所以尽可能使用标准SQL语法。
第四步:配置环境变量

第五步:停止服务里边mysql
cmd->services.msc #打开服务
找到mysql停止
第六步:查看mysql版本是否正确
cmd->mysql --help

第七步:卸载5.6版本,这步很关键,博主找了很多资料,终于解决 参考链接:https://blog.csdn.net/qq_39701269/article/details/77935490
cmd->sc query mysql #管理员身份运行,输入sc query mysql,查看一下名为mysql的服务 sc delete mysql #删除该mysql

第八步:安装mysql 5.7.27 参考链接:https://www.cnblogs.com/super-wking/p/10551936.html
1:安装Mysql命令如下:
mysqld install MySQL --defaults-file="D:\mysql5.7.27\mysql-5.7.27-winx64\my-default.ini" #安装新版本mysql

2:获取mysql临时密码如下
注意:一定要进入到mysql安装bin目录下执行以下命令!!!!
mysqld --initialize --user=mysql --console #初始化 获取root随机密码 “root@localhost”后的随机字符串就是root的临时密码。

注意:如果出现如下情况,说明mysql之前版本没有卸载干净,执行之步骤七就好

3:启动mysql
注意:一定要进入到mysql安装bin目录下执行以下命令!!!!
net start mysql #启动mysql

第九步:修改mysql密码
mysql -u root -p #进入mysql输入之前的临时密码

第十步:设置root新密码
set password = password('root');
设置成功后exit 退出,重新执行以下命令,密码是你自己设置的,我设置的密码是root
mysql -u root -p
至此mysql升级完毕!!!
添加新用户权限:
grant select,insert,update,delete on book.* to test@localhost Identified by "abc";
参考链接:https://www.cnblogs.com/wanghuaijun/p/5802209.html
给某个用户某个数据库权限
GRANT select,insert,delete,update ON testdb.* TO 'test'@'%';
参考链接:https://www.cnblogs.com/tianrunzhi/p/8316141.html
【mysql升级步骤】windows mysql版本升级 ,mysql 5.6 升级到5.7.27的更多相关文章
- MySQL入门——在Windows下安装MySQL
MySQL入门——在Windows下安装MySQL 摘要:本文主要说明了如何下Windows环境下安装MySQL. 查看电脑上是否安装了MySQL 打开cmd窗口,输入 services.msc 命令 ...
- 转:mysql日志(Windows下开启Mysql慢查询、通用日志)
一.Windows下开启Mysql慢查询详解 //show variables like '%quer%';查询是否开启了慢查询!! 第一步:修改my.ini(mysql配置文件) 在my.ini中 ...
- MySQL集群---②Windows平台搭建MySQL CLUSTER集群
原文:http://blog.csdn.net/mazhaojuan/article/details/42211857 本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. My ...
- MySql安装步骤详解,MySql的root密码设置,启动MySql服务。
1.下载mysql安装包,并解压,双击mysql-5.6.24-winx64.msi 2.点击下一步 3.选择custom 4.选择安装内容和位置,5个安装内容要选择will be installed ...
- Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
- windows、linux mysql部署
阅读目录: 1.Windows下安装MySQL 2.Linux下安装MySQL 序章: MySQL是个小型的数据库,用来自己做小项目,做学习练习什么的再适合不过了,不过新手总会被一些莫名奇妙的问题难住 ...
- 在Windows上安装MySQL(转整)
MySQL安装 在Windows上安装MySQL.首先登录MySQL的官网下载安装包. 选择MySQL installer 这里选择第二个安装包下载即可. 下载完成之后就选择安装那个下载到的文件,基本 ...
- python相关软件安装流程图解——MySQL 8.0.13安装教程(windows 64位)——MYSQL依赖的软件——MYSQL必须的系统DLL插件——MYSQL真正的安装
https://www.mysql.com/https://www.mysql.com/downloads/https://dev.mysql.com/downloads/windows/https: ...
- Windows Server 2008 R2文件服务器升级到Windows Server 2016
Windows Server 2008 R2文件服务器升级到Windows Server 2016 用户单位有2台Windows Server 2008 R2的文件服务器,已经加入到域.域服务器另有两 ...
随机推荐
- 从OLLVM4.0.0升级到LLVM8.0.1,并且给LLVM增加Pass 插件系统
版本太低了,用得我这个揪心. 上周日决定把手头的ollvm从4.0.0升级到LLVM8.0.1. 里面的Pass的话,决定移植到8.0.1里面. 我习惯从代码上来动手 1:下载LLVM https: ...
- 八、hibernate的查询(HQL)
HQL:Hibernate Query Language 提供更加丰富灵活.更为强大的查询能力 HQL更接近SQL语句查询语法 面向对象的查询 "from Children where ci ...
- IO,文件
IO 1. 定义 >在内存中存在数据交换的操作认为是IO操作,比如和终端交互 ,和磁盘交互,和网络交互等 2. 程序分类 >* IO密集型程序:在程序执行中有大量IO操作,而cpu运算较少 ...
- Linux下的上传和下载yum install -y lrzsz
先使用命令 yum install -y lrzsz rz 上传 或者直接拖动 sz 要下的文件 回车
- 关于python全局变量
今天踩了一个坑,记录一下,避免后犯 在constant.py 中定义了一个全局变量 ZH_LIST= [],以个用于存储配置一些信息: 在views.py 中引用了这个ZH_LIST : 然后在app ...
- Qt error: C2236: 意外的标记“class”。是否忘记了“;”?
前阵子玩了一个比较大的程序,手脚,身子脑袋都分开写的那种,因此互相include .h比较多,那么问题来了,有些cpp没有include 的类却使用了起来 ,这时候IDE不会出这个类没有定义什么的,而 ...
- OpenCV常用基本处理函数(7)图像金字塔和直方图
高斯金字塔 高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的.顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值. 这样操作一次一个 MxN 的图像就变成了一个 M/2xN/ ...
- JavaScript面向对象小抄集
前言 本文旨在记录JavaScript中面向对象的基础知识 搞明白JavaScript中的面向对象 一切都是对象 JavaScript中,除了基本类型外,其它类型都是对象类型 所谓对象就是若干属性的集 ...
- Postgresql临时表
PostgreSQL支持两类临时表,会话级和事务级临时表.在会话级别的临时表中,在整个会话的生命周期中,数据一直保存.事务级临时表,数据只存在于这个事务的生命周期中.不指定临时表的属性, Postgr ...
- How do I force my .NET application to run as administrator?
How do I force my .NET application to run as administrator? You'll want to modify the manifest that ...