• windows 下升级安装mysql8,与旧版本5.6共存


    应开发需求,自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:phpapachemysql-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:phpapachemysql-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:phpapachemysql-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 userG;

    #查询语句 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 

  • 相关阅读:
    oracle中scott/tiger、sys、SYSDBA、system都是什么用
    选择ORACLE数据库字符集
    如何给oracle账户解锁
    nodejs_100个实例(3)_文件读取
    nodejs+express+mongodb简单实现注册登录
    ECharts之类型map(省级,地级市)附(世界地图、中国、省份、地级市地图Json文件)
    nodejs_100个实例(2)
    nodejs_100个实例(1)
    nodejs学习过程2之相关网站2
    nodejs学习过程2之相关网站
  • 原文地址:https://www.cnblogs.com/zwesy/p/9276322.html
Copyright © 2020-2023  润新知