• Mysql学习笔记:5.5升级至8.0版本


    一、背景

    今日重温 SQL 练习题,发现很多必须基于窗口函数来书写,例如:row_number() over(partition by col_001 order by col_002),然而 MySQL5.5 不支持,只能通过变量 @var 的方式实现,略显麻烦。

    遂更新之。

    二、卸载5.0

    由于之前是用的安装包直接安装,所以从控制面板,或者腾讯管家-卸载软件就可以卸载完成。

    最后将注册表、安装文件夹一并清理干净。

    三、安装8.0

    1.下载软件

    -- MySQL官网
    https://dev.mysql.com/downloads/mysql/
    
    -- 目前最新
    MySQL Community Server 8.0.27
    

    这里注意区分:

    • zip版本:压缩包版本,下载可以直接使用
    • msi版本:安装软件版本,可执行,类似于exe可执行文件

    此处,我选择 zip 版本,看过其他文章,减少一些不必要麻烦。

    2.解压缩

    解压缩到本地目录下。

    D:\Program Files\MySQL8.0\mysql-8.0.27-winx64\mysql-8.0.27-winx64\
    

    注意:当前版本无需按照其他版本,创建 my.ini 文件。

    3.安装

    使用管理员权限打开 cmd 命令行。

    • 切换至安装目录下
    # 切换到D盘
    cd /d d:
    
    # 再切换到bin目录下
    cd D:\Program Files\MySQL8.0\mysql-8.0.27-winx64\mysql-8.0.27-winx64\bin
    
    • 执行安装
    # 首先
    mysqld --install
    # Service successfully installed.
    
    # 紧接着
    mysqld --initialize --console
    # root@localhost: iehDwh,Mn1l9
    
    2022-01-14T08:09:17.060899Z 0 [System] [MY-013169] [Server] D:\ProgramFiles\mysql-8.0.27-winx64\mysql-8.0.27-winx64\bin\mysqld.exe (mysqld 8.0.27) initializing of server in progress as process 30764
    2022-01-14T08:09:17.164441Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2022-01-14T08:09:23.850497Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2022-01-14T08:09:39.426829Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
    2022-01-14T08:09:39.430706Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
    2022-01-14T08:09:39.588486Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Skn<VWSI>4sN
    
    

    此时会自动安装,并创建 root 用户以及随机密码。

    切记:复制密码!!!复制密码!!!复制密码!!!

    切记:复制密码!!!复制密码!!!复制密码!!!

    切记:复制密码!!!复制密码!!!复制密码!!!

    • 启动服务
    net start mysql
    # MySQL 服务正在启动...
    # MySQL 服务已经启动成功。
    

    四、登录

    • 输入密码进行登录
    mysql -u root -p
    # 输入刚刚复制的密码
    
    • 修改密码
    alter user user() identified by "123456";
    
    • 显示当前所有的库
    show databases;
    
    • 选择库
    use mysql;
    

    五、使用 SQLyog or Navicat 连接

    连接的时候发现报错:

    -- 提示
    caching_sha2_password
    

    分析及查找相关资料后,发现 MySQL8.0 采用新的更安全的验证方式。

    登录 mysql 修改为旧版本的登录方式。

    -- 查询
    select user, host from user;
    
    -- 修改密码及登录方式
    alter user root@localhost identified with mysql_native_password by "123456";
    
    -- 刷新同步内存
    flush privileges;
    

    六、其他报错

    安装过程中还遇到另外一个报错问题:

    -- 无法启动此程序,因为计算机中丢失VCRUNTIME140_1.dll。尝试重新安装该程序一解决问题
    

    解决办法为:微软官网下载安装 Visual C++ 即可。

    -- 微软官网下载安装 Visual C++
    https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
    

    七、OK!!!

    可以愉快的玩耍了!!

    继续刷题!!接着舞。。。

    参考链接:最新Mysql 8.0.27安装指南

    参考链接:MySQL8.0的caching_sha2_password问题

    参考链接:无法启动此程序,因为计算机中丢失VCRUNTIME140_1.dll。尝试重新安装该程序一解决问题。

  • 相关阅读:
    Educational Codeforces Round 95(A-C题解)
    Codeforces Round #669 (Div. 2)A-C题解
    Codeforces Round #668 (Div. 2)A-C题解
    八月第四周总结
    牛客小白月赛27部分题解
    八月第三周总结
    Codeforces Round #665 (Div. 2)A-C题解
    Kubernetes K8S之存储ConfigMap详解
    在Linux下如何根据域名自签发OpenSSL证书与常用证书转换
    Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务
  • 原文地址:https://www.cnblogs.com/hider/p/15800168.html
Copyright © 2020-2023  润新知