MySQL技术专题(X)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)

前提背景

MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
本文主要讲述压缩版,因为安装不太方便,但是功能效果都是一样的!

MySQL8的介绍说明

MySQL 8.0是全球最受欢迎的开源数据库的一个非常令人兴奋的新版本,全面改进。一些关键的增强包括:

MySQL8的特性介绍

  • SQL窗口函数,公用表表达式,NOWAIT和SKIP LOCKED,降序索引,分组,正则表达式,字符集,成本模型和直方图。

  • JSON扩展语法,新功能,改进排序和部分更新。使用JSON表函数,您可以使用JSON数据的SQL机制。

  • GIS地理支持。空间参考系统(SRS),以及SRS感知空间数据类型,空间索引和空间功能。

  • 可靠性 DDL语句已变得原子性和崩溃安全,元数据存储在单个事务数据字典中。由InnoDB提供支持!

  • 可观察性性能架构,信息架构,配置变量和错误记录的显着增强。

  • 可管理性远程管理,撤消表空间管理和新的即时DDL。

  • 安全 OpenSSL改进,新的默认身份验证,SQL角色,分解超级特权,密码强度等等。

  • 性能 InnoDB在读/写工作负载,IO绑定工作负载和高争用“热点”工作负载方面明显更好。

  • 增加了资源组功能,通过将用户线程映射到CPU,为用户提供一个选项,以针对特定硬件上的特定工作负载进行优化

开发者需要了解的特性!

MySQL开发人员需要新功能,而MySQL 8.0在诸如SQL,JSON,正则表达式和GIS等领域提供了许多新的和更多需求的功能。开发人员也希望能够存储Emojis,因此UTF8MB4现在是8.0中的默认字符集。最后,数据类型得到了改进,在BINARY数据类型上进行了按位操作,并且改进了IPv6和UUID功能。

下面简要介绍 MySQL 8 中值得关注的新特性和改进。

  1. 性能:MySQL8.0的速度要比MySQL5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。
image
  1. NoSQL:MySQL从5.7版本开始提供 NoSQL 存储功能,目前在8.0版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的ACID合规性。
image
  1. 窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。
    • 窗口函数
      • MySQL 8.0提供了SQL窗口功能。与分组集合函数类似,窗口函数对一组行进行一些计算,例如COUNT或SUM。但是,如果分组聚合将这组行集合到一行中,则窗口函数将为结果集中的每一行执行聚合。
      • 窗口化的聚合函数:COUNT,SUM,AVG,MIN,MAX,BIT_OR,BIT_AND,BIT_XOR,STDDEV_POP(及其同义词STD,STDDEV),STDDEV_SAMP,VAR_POP(及其同义词VARIANCE)和VAR_SAMP。
      • 专门的窗口函数是:RANK,DENSE_RANK,PERCENT_RANK,CUME_DIST,NTILE,ROW_NUMBER,FIRST_VALUE,LAST_VALUE,NTH_VALUE,LEAD和LAG

对窗口函数(又名分析函数)的支持是一种频繁的用户请求

  1. 隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。

  2. 降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。

  3. 公用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。

    • MySQL 8.0提供[递归]公用表表达式(CTE)。非递归CTE可以解释为“改进的派生表”,因为它允许派生表被多次引用。递归CTE是一组迭代构建的行:从最初的一组行开始,一个进程派生新的行,然后将这些新的行重新输入到进程中,产生更多的行,等等,直到该过程不再生成行。
  4. UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。

  5. JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。

  6. 可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。

  7. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。

  8. 安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。

MySQL8的安装介绍

  • 进入官网后,点击"Dowload",然后页面往下拉


    image
  • 接下来看到的页面是这样的,红色框框的链接就是mysql社区版,是免费的mysql版本,然后我们点击这个框框的链接:


    image
  • 接下来跳转到这个页面,在这里,我们只要下载社区版的Server就可以了:


    image
  • 下载免安装版(windows以外的其他系统除外)

image
  • 至此,安装包就下载好了!

注意,安装的目录应当放在指定位置,其次,绝对路径中避免出现中文,推荐首选英文为命名条件!

image

MySQL解压和配置环境变量

  1. 找一个文件夹放入解压后的mysql,不建议放c盘,200M左右的sql解压后大约接近1G

  2. 把MySQL解压后的bin文件地址加入环境变量的path,方便终端寻找MySQL命令行。

MySQL 创建配置

下载完后,建议解压到一个没有中文的路径,在解压目录创建my.ini配置文件(如果没有就自己手动建立一个即可)

image

添加相关基本配置
# 这些是基本配置信息
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置3336端口
port = 3336
# 设置mysql的安装目录
basedir=D:\developer\installed\mysql8\mysql-8.0.12-winx64
# 设置 mysql数据库的数据的存放目录
datadir=D:\developer\installed\mysql8\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=20
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
# 使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
#设置时区为东八区,此项设置后,在连接MySQL的时候可以不用每次都手动设置时区
default-time-zone = '+8:00'
  • mysql给出的初始密码太复杂了,一般我们需要改为一个简单的密码方便之后登陆,在MySQL8.0.4以前,执行:SET PASSWORD=PASSWORD(’[修改的密码]’),即可更改密码,但MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。
  • 因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,暂时需要改回“mysql_native_password”认证插件。
初始化MySQL服务

采用cmd进入解压后的bin目录,输入mysqld --initialize --console

  • mysql会在和bin同级目录下产生data文件,即root的数据库,并产生如下红框中的随机密码(如果没有密码,可以使用mysql -uroot -p直接登陆),对应账号为root。在没有更改密码前,需要记住这个密码,后续登录需要用到。


    image
安装MySQL服务
  • 还在bin 目录下执行命令
mysqld --install [服务名]

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

  • 在mysql的bin目录下面执行: mysqld --install

    • 报错信息如下:Install/Remove of the Service Denied

    • 解决办法:打开cmd.exe程序的时候选择“用管理员身份打开”。

image

出现上述信息则标识成功安装

启动MySQL服务

输入:net start [服务名]

image
登录MySQL服务
  • 登录指定端口3336

命令如下,这时候会提示输入密码,使用上面安装时给的随机密码,填入即可登录成功,进入MySQL命令模式。

mysql -u root -p 3336
修改密码

刚才生成的是临时密码,得改。

输入ALTER USER "root"@"localhost" IDENTIFIED BY "新密码";

卸载MySQL服务

停止服务

net stop libomysql(服务名)

卸载服务

mysqld --remove libomysql(服务名)

参考资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容