应开发需求,自mysql5.7开始引入json列类型和相关函数。为了提高数据读写的访问效率因此把数据库从mysql 5.6版升级到最新发行版 mysql 8.0.11 。

特此记录下多版本升级共存的过程!

升级前准备工作:

1、快捷win+R 运行【sysdm.cpl】打开系统属性,删除系统环境变量 "path" 中关于之前旧版本(我这是mysql-5.6.24 )的配置信息;

2、快捷win+R 运行 【services.msc】 打开【服务】,选择关闭旧版本的mysql 服务。

安装准备工作:

一、下载MySQL

1、进入官网 https://dev.mysql.com  选择【DOWNLOADS】=>选择开源社区服务【MySQL Community Server】页面,下拉选择操作系统下载。

或者直接进入 https://dev.mysql.com/downloads/file/?id=476233 页面选择 No thanks, just start my download 下载 mysql-8.0.11-winx64.zip文件到本地。

2、把下载下来的压缩包解压到 本地集成开发的目录中,如 H:\phpapache\mysql-8.0.11-winx64 。

二、编译安装Mysql

1、把新版的mysql 加入到环境变量中。

2、编辑mysql的配置文件 my.ini,若解压的压缩包不存在该文件就自己创建一个。

[mysqld]
# 设置3307端口,为了与旧版本的区分不冲突
port=3307
# 设置mysql的安装目录
# 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
basedir=H:\\phpapache\\mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=H:\phpapache\mysql-8.0.11-winx64\\home\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#MySQL8.0.4之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。
# 但因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时改回了“mysql_native_password”认证插件。
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8

 #用户密码的生命周期,设置为0 (不过期),或按公司的维护周期进行设置
 default_password_lifetime=0

注意:datadir 的文件目录可自行创建也可以在初始化的时候自动生成。

3、安装MySQL

3.1、以管理员的身份运行 【CMD】 ,打开DOS 命令窗口,否则会因权限问题导致安装失败。

3.2、初始化MySQL

  

DOS下执行命令
H:
cd H:\phpapache\mysql-8.0.11-winx64
跳转到MySQL安装目录

  

在MySQL安装目录的 bin 目录下执行命令:

  mysqld --initialize --console


执行完成会返回如图

注意其中: A temporary password ....这段话,是初始化后生成的临时密码,需要几下来后面登录需要用到,如当前的是 【fbk,zURH81KC】,注意密码前面的空格不要

3.3、 安装mysql 服务

在MySQL安装目录的 bin 目录下执行命令:

mysqld --install [服务名]

后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如我这是 mysql 和 mysql8。

安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。通过命令net stop mysql停止服务。通过命令 sc delete 服务名 卸载服务

4、更改密码

在MySQL安装目录的 bin 目录下执行命令:

mysql -u root -p
这时候会提示输入密码,输入上面第3.2步骤得到的初始密码,填入即可登录成功,进入MySQL命令模式。

在mysql 8.04 之前可以通过执行:

SET PASSWORD=PASSWORD('[修改的密码]'); 来修改密码

但是MySQL8.0.4开始,这样是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,mysql 8.04 之后使用的是“caching_sha2_password”。

参考:https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,暂时改回了“mysql_native_password”认证插件。

修改用户密码,在MySQL中执行命令:

  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

如果想默认使用“mysql_native_password”插件认证,可以在配置文件中配置default_authentication_plugin项。

  default_authentication_plugin=mysql_native_password

到此,安装部署就完成了。

可以用 命令查看一下默认安装的数据库:

看到默认初始化了mysql数据库,其中user表里面存储MySQL用户信息。

有4个初始用户,对其中3个对应了不同的初始系统库

管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许远程ip访问,可以直接修改成“%”,但这样会导致本地无法连接。

因此最好新建允许远程连接的管理用户。

创建用户:

  CREATE USER 'zw'@'%' IDENTIFIED WITH mysql_native_password BY 'zw125408';

#(需要注意:mysql8.04后加密方式修改了)
#检查用户

  select user, host, plugin, authentication_string from user\G;

#查询语句 \G 结尾表示格式化输出

授于管理权限

#授权所有权限 
  GRANT ALL PRIVILEGES ON *.* TO 'zw'@'%';
#授权基本的查询修改权限,按需求设置
  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'baseroot'@'%';

  grant all privileges on *.* to '用户'@'%' identified by '密码' with grant option;

  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*.*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
  • to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”zw”@”192.168.0.%”,表示zw这个用户只能在192.168.0IP段登录
  • identified by:指定用户的登录密码
  • with grant option:表示允许用户将自己的权限授权给其它用户

  可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。

  用户详情的权限列表请参考MySQL官网说明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

 

#刷新权限:

  对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库。

  mysql> flush privileges;

查看用户权限
  show grants for 'zw'@'%';

参考资料

mysql8.0.11安装 https://www.cnblogs.com/laumians-notes/p/9069498.html

多版本共存 https://blog.csdn.net/lizhikang2009/article/details/51123812

权限参考 https://blog.csdn.net/anzhen0429/article/details/78296814

windows 下升级安装mysql8,与旧版本5.6共存的更多相关文章

  1. windows下同时安装多个python版本的方法

    根据项目的需要,我的电脑上需要安装的python不止一个版本,比如同时需要python2.7和python3.6: 安装多个python版本 这时需要下载多个python安装包,为了区分不同的pyth ...

  2. Linux下升级安装Python-3.6.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...

  3. windows下离线安装mysql8.0服务(支持多个安装,端口不同就可以)

      1.官网下载 mysql文件.官网下载链接:https://dev.mysql.com/downloads/mysql/ 选择mysql下载的系统版本. 此处可以下载MSI安装包,图简单的朋友可以 ...

  4. ubuntu下JDK安装(更新旧版本JAVA)

    1.sudo apt-get install openjdk-8-jre openjdk-8-jdk 2.默认会安装在 路径为 /usr/lib/jvm/java-7-openjdk-amd64 下面 ...

  5. Windows 下升级 node & npm 到最新版本

    查询 Node 的安装目录where node 升级 Node:在官网下载最新的安装包,直接安装即可.https://nodejs.org/ 升级 npmnpm install -g npm 使用 n ...

  6. Linux下升级安装Python-3.6.9版本

    1.操作系统信息  (1)cat /etc/redhat-releas (2)Red Hat Enterprise Linux Server release 6.0 (Santiago) 2.安装开发 ...

  7. MySQL8.0在Windows下的安装和使用

    前言 MySQL在Windows下有2种安装方式:1.图形化界面方式安装MySQL 2.noinstall方式安装MySQL.在这里,本文只介绍第二种方式:以noinstall方式安装MySQL,以及 ...

  8. Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本

    笔者:风起怨江南 出处:https://www.cnblogs.com/mengjinxiang 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,谢谢! 问题:window系统下,如果升级了最新的Pyt ...

  9. Windows下Wireshark安装版本选择方式

    Windows下Wireshark安装版本选择方式   Wireshark版本分为1.X系列和2.X系列.1.X系列是早期版本,不提供中文版本.2.X系列是新版本,安装后,同时提供中文版和英文版.根据 ...

随机推荐

  1. 菜鸟vimer成长记——第2.4章、cmd-line模式

    cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和S ...

  2. ipa包兼容性大作战!WeTest iOS深度兼容测试全新升级

    2018年,移动端适配话题热闹无比,有iOS新版本新机型发布,全面屏.异形屏.曲面屏争相斗艳,从而产生了各类特殊的屏幕分辨率设备. 正是因为这些特殊分辨率,导致2018年手机设备频繁出现适配问题,如屏 ...

  3. Cisco Packet Tracer中两台电脑通信设置

    Cisco Packet Tracer是网络初学者仿真模拟网络环境的必备工具.今天我们来模拟下两台电脑之间的通信. Cisco Packet Tracer版本6.2.0 一.添加设备 1.这里添加一个 ...

  4. 正则表达式30min

    如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 ...

  5. 自己编写的:centos6.6上编译安装apache2.4+php5.6+mysql5.6【亲自】

    在centos6.6上安装apache2.4+php5.6+mysql5.6 关于wget的安装 将之前装系统的.iso文件挂载到光驱 由于我在/home/jinnan/下建立了一个cdrom文件夹 ...

  6. SpringCloud 学习(二)-1 :服务注册与发现Eureka扩展

    上一篇介绍了Eureka Server的搭建跟配置.Eureka Client的搭建跟配置.服务间通过服务名调用等,还有几个实际实验中遇到的问题及处理方案,本篇来玩一下Eureka的其他配置. 上一篇 ...

  7. Netty源码分析第6章(解码器)---->第1节: ByteToMessageDecoder

    Netty源码分析第六章: 解码器 概述: 在我们上一个章节遗留过一个问题, 就是如果Server在读取客户端的数据的时候, 如果一次读取不完整, 就触发channelRead事件, 那么Netty是 ...

  8. DevOps on AWS之Cloudformation实践篇

    cloudformation入门实践 AWS cloudformation通过模板对AWS云资源进行编排和调用.并且可以通过模板代码层面的修改就可以对现有环境进行升级改造,云端业务的灵活便捷特点展现无 ...

  9. 如何利用京东云的对象存储(OSS)上传下载文件

    作者:刘冀 在公有云厂商里都有对象存储,京东云也不例外,而且也兼容S3的标准因此可以利用相关的工具去上传下载文件,本文主要记录一下利用CloudBerry Explorer for Amazon S3 ...

  10. AES128加密算法完整实现

    概述 原本想把自己AES加密算法的整个实现过程给详细复述下来,分享给想学习的同学,也方便自己复习,但后来发现该工作量太大,加上作业太多没有过多的时间去写.所以就想把自己在学习的过程中多遇到的好的文章进 ...