前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0初体验

MySQL 8.0初体验

作者头像
jeanron100
发布2018-07-26 15:06:06
7820
发布2018-07-26 15:06:06
举报

从决定安装MySQL 8.0到开始行动,也就不到一个小时的时间,一个小时的时间能干些啥呢,来简单体验下8.0,官网上能看到这个丰富的表情包。

我们知道表情的信息在数据库中存储,使用 UTF8是无能为力的,是可以使用utf8mb4来弥补的,8.0里的默认字符集就是utf8mb4了。

看官网的链接,8.0已经正式上线,5.6,5.7已经成为了历史版本,所以现在的版本选型新环境还是选择5.6的话,就不大合理了。

目前的最新版本是8.0.11,有一点比较特别的是,如果我选择安装RedHat系统,目前是只能支持RPM方式安装,其实对我来说,我对RPM安装是敏感的,依赖有些重,源码安装看起来逼格比较高。

通用的还是二进制,算了还是直接选择Linux Generic吧。

说实话,要完成这个看似艰巨的任务,其实我是输给了流量上,下载的流程还是不够非一般的速度。

所以在等待下载的过程中,我大脑中飞快的闪现着8.0的一些特性。

1.创建数据库,查看字符集

2.查看存储引擎的变化

3.查看数据字典信息的变化

4.查看数据文件的分布情况

5.新增的工具集

6.验证role的效果

7.验证窗口函数

8.验证不可见索引

大概又等了10多分钟,我们开始解压部署一下服务。

写了个简单的参数文件:

[client]

port = 3308

socket = /data/mysql_8.0/mysql.sock

[mysqld]

port = 3308

user = mysql

socket = /data/mysql_8.0/mysql.sock

basedir = /usr/local/mysql_8.0

datadir = /data/mysql_8.0

log-error = error.log

server-id = 3308

初始化数据库服务。

/usr/local/mysql_8.0/bin/mysqld --defaults-file=/data/my.cnf --initialize-insecure

这个以前版本最大的不同就是没有任何输出了。

启动MySQL 8的数据库服务

/usr/local/mysql_8.0/bin/mysqld_safe --defaults-file=/data/my.cnf &

如果登录的时候,客户端版本太低,会报出如下的错误来。

# mysql --socket=/data/mysql_8.0/mysql.sock --port=3308

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/local/mysql/lib/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

而我们可能需要这样设置,指定mysql的执行路径。

我们来逐个验证一下:

1.创建数据库,查看字符集

当前数据库的情况如下:

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

新建一个test数据库。

mysql> create database test;

Query OK, 1 row affected (0.09 sec)

查看字符集,确实是默认utf8mb4了。

mysql> show create database test;

| Database | Create Database |

| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |

2.查看存储引擎的变化

查看存储引擎的情况,可以发现MyISAM其实还在列表中,后续应该会直接去掉了。

3.查看数据字典信息的变化

通过这个对比可以看到有些数据字典的存储引擎显示已经发生了变化,在5.7中是这样显示的。

在8.0中有了变化,存储引擎已经不显示为Memory了,而是代以NULL显示。

4.查看数据文件的分布情况

我创建了一个表test,发现在文件目录下只有一个.ibd文件了,没有了.frm文件。

[root@dev01 test]# ll

total 80

-rw-r----- 1 mysql mysql 114688 May 26 23:52 test.ibd

如果细看初始化目录,可以明显看到undo的设置已经作为了标配,还有一个较新的mysql.ibd文件。通过strings解析可以看到表结构的一些信息在这个里面了。

5.新增的工具集

整体来看,bin目录下的文件不光没多,还少了4个。

6.验证role的效果

mysql> create role app_read;

Query OK, 0 rows affected (0.18 sec)

mysql> grant select on test.test to app_read;

Query OK, 0 rows affected (0.08 sec)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档