热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql8.0使用手册_Centos7安装MySQL8.0操作手册

MySQL8正式版8.0.11已发布,官方表示MySQL8要比MySQL5.7快2倍,还带来了大量的改进和更快的性能!一.Mysql8.0

MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!

一.  Mysql8.0版本相比之前版本的一些特性

1) 默认编码utf8

默认编码使用utf8mb4, utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符历史,MySQL数据库的 "utf8"并不是真正概念里的 UTF-8。MySQL中的"utf8"编码只支持最大3字节每字符。真正的大家正在使用的UTF-8编码是应该能支持4字节每个字符。MySQL的开发者没有修复这个bug。他们在2010年增加了一个变通的方法:一个新的字符集"utf8mb4"另外,utf-32编码固定使用4字节,32bit存储相比utf8浪费空间。

2) 降序索引

在之前的版本中可以创建,但是实际创建的还是升序索引

另外,由于降序索引的引入,MySQL 8.0再也不会对group by操作进行隐式排序

3) 隐藏索引

隐藏索引的特性对于性能调试非常有用。当一个索引隐藏时,它不会被查询优化器所使用。也就是说,我们可以隐藏一个索引,然后观察对数据库的影响。如果数据库性能有所下降,就说明这个索引是有用的,于是将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以删掉了.

当索引被隐藏时,它的内容仍然是和正常索引一样实时更新的,此特性是专门为优化调试使用。如果长期隐藏一个索引,那还不如干脆删掉,因为毕竟索引存在会影响插入、更新和删除的性能.

4) 设置持久化

在oracle中可以使用scope设置参数确定是否到spfile, 现在mysql8.0也可以放在文件中了,使用方法:

可以查看在数据目录datadir中的一个mysqld-auto.cnf文件中保存了设置,下次启动时候将用此配置覆盖默认配置参数

{ "Version" : 1 , "mysql_server" : { "max_connections" : { "Value" : "1000" , "Metadata" : { "Timestamp" : 1540437420567571 , "User" : "root" , "Host" : "" } } } }

5) 通用表表达式(Common Table Expressions)

也可以称为虚拟视图,大大简化复杂查询

6) 窗口函数(Window Functions)

MySQL 被吐槽最多的特性之一就是缺少 rank() 函数,当需要在查询当中实现排名时,必须手写 @ 变量。但是从 8.0 开始,MySQL 新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式

说明,窗口可以单独创建。

7) 安全性

对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。MySQL现在维护关于密码历史的信息,允许对以前密码的重用进行限制

比如常见的一个连接错误,参考:https://blog.csdn.net/jc_benben/article/details/80652897

8) 增加JSON (json enhancements)AND OpenGIS spatial types

mysql提供了很多json相关的函数和API接口,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数

9) 原子数据定义语句(原子DDL)(Atomic Data Definition Statements (Atomic DDL))

10) 资源管理(Resource management)

MySQL现在支持资源组的创建和管理,并允许将服务器内运行的线程分配给特定组,以便线程根据组可用的资源执行。组属性可以控制其资源,以启用或限制组中线程的资源消耗

11) Data dictionary

MySQL现在包含一个事务数据字典,用于存储有关数据库对象的信息,In previous MySQL releases, dictionary data was stored in metadata files and nontransactional tables

比如myisam和innodb表定义frm文件等.

12) innodb的增强

1  每次值更改时,当前最大自动增量计数器值将写入重做日志,并保存到每个检查点上的引擎专用系统表中。这些更改使当前最大自动增量计数器值在服务器重新启动时保持不变。

2遇到索引树损坏时, InnoDB将损坏标志写入重做日志,这会使损坏标志崩溃安全。InnoDB还将内存中损坏标志数据写入每个检查点上的引擎专用系统表。在恢复期间, InnoDB从两个位置读取损坏标志并在将内存表和索引对象标记为损坏之前合并结果。

3InnoDB 分布式缓存插件支持多个get操作(读取在一个单一的多键/值对分布式缓存查询)和范围查询;

4新的动态配置选项 innodb_deadlock_detect可用于禁用死锁检测。在高并发系统上,当许多线程等待同一个锁时,死锁检测会导致速度减慢。有时,禁用死锁检测可能更有效,并且在innodb_lock_wait_timeout发生死锁时依赖于事务回滚的设置。

5INFORMATION_SCHEMA.INNODB_CACHED_INDEXES 表报告InnoDB每个索引缓冲池中缓存的索引页数 。

6InnoDB现在,在共享临时表空间中创建临时表ibtmp1。

7InnoDB 表空间加密功能支持重做日志的加密和撤消日志数据;

8InnoDB支持 NOWAIT和SKIP LOCKED选项SELECT ... FOR SHARE以及SELECT ... FOR UPDATE锁定读取语句。 NOWAIT如果请求的行被另一个事务锁定,则会立即返回该语句。SKIP LOCKED从结果集中删除锁定的行SELECT ... FOR SHARE替换 SELECT ... LOCK IN SHARE MODE,但LOCK IN SHARE MODE仍可用于向后兼容;

9支持ADD PARTITION,DROP PARTITION,COALESCE PARTITION,REORGANIZE PARTITION,和REBUILD PARTITION ALTER TABLE选项;

10InnoDB存储引擎现在使用MySQL的数据字典,而不是它自己的存储引擎特定的数据字典;

11mysql系统表和数据字典表现在在MySQL数据目录中InnoDB命名的单个表空间文件创建mysql.ibd。以前,这些表是InnoDB在mysql数据库目录中的各个表空间文件中创建的;

二.  Mysql8.0安装 (YUM方式)

三.  Mysql8.0安装 (二进制方式)

MySQL单机多实例安装配置

通过上面二进制部署可知, 已经起来一个3306端口的MySQL实例, 现在需要再起来两个实例, 分别为3307, 3308. 操作如下:

编写mysql多端口实例的登录脚本

生产环境下的思路: 同一个业务库单独放在一个实例下, 不要混用数据库. 单机多实例间可以做主从或主主同步, 也可以在多机多实例之间坐主从或主主同步.

比如:

A机器有三个实例:  3310, 3311, 3312

B机器有三个实例:  3310, 3311, 3312

C机器有三个实例:  3310, 3311, 3312

则三台机器的每个对应的端口实例之间做主从或主主同步(GTID, MGR), 一主两从, 或三主模式.  (多实例环境最好不要用3306端口, 否则经常会出现一些误操作)

四.  Mysql8.0使用过程中踩过的一些坑

1)  创建用户和授权

在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样, 只能说是更严格, mysql8.0需要先创建用户(创建用户时要带@并指定地址, 则grant授权时的地址就是这个@后面指定的!, 否则grant授权就会报错!)和设置密码,然后才能授权。

如果还是用Mysql5.7及之前版本的直接授权的方法, 会有报错:

2)  Mysql8.0默认是不能使用root账号进行远程登录的! root账号只能本地登录!

这样就能在远程使用root账号登录该mysql8.0的数据库了

3) 修改root账号权限, 允许root账号远程登录后, 用navicat进行mysql的远程连接时,出现了弹窗报错:

713b6a86a7fd92a5cf1ef4b14935b382.png

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password, 而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种:

1) 一种是升级navicat驱动;

2) 一种是把mysql用户登录密码加密规则还原成mysql_native_password;

这里选择第二种方法来解决:

这样问题就解决了。

4) sqlyog链接时出现2058异常

5) 修改默认编码方式

6) 部分参数配置查询命令



推荐阅读
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
author-avatar
dishonest的你_507
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有