MySQL5.6与5.7的区别——及MySQL5.6版本安装

news/2024/7/6 1:34:59

  • 一、MySQL5.7对比5.6的优势
      • 1.安全性
      • 2.灵活性
      • 4.易用性
      • 5.可用性
      • 6.性能优势
      • 7.默认参数的改变
      • 8.安装不同
  • 二、MySQL 5.6 的安装步骤
      • 1.查看并解压源码包
      • 2.安装环境
      • 3.CMAKE编译并安装
      • 4.配置my.cnf和启动脚本
      • 5.添加环境变量
      • 6.创建程序账号,并授权
      • 7.初始化MySQL配置
      • 8.开启数据库,并设置密码登入

一、MySQL5.7对比5.6的优势

1.安全性

用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是 mysql_old_password,不再支持旧密码格式;

增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式;

增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式;

提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。

2.灵活性

MySQL数据库从5.7.8版本开始,也提供了对JSON的支持。

可以混合存储结构化数据和非结构化数据,同时拥有关系型数据库和非关系型数据库的优点

能够提供完整的事务支持

generated column是MySQL 5.7引入的新特性,所谓generated column,就是数据库中这一列由其他列计算而得

4.易用性

在MySQL 5.7 之前,如果用户输入了错误的SQL语句,按下 ctrl+c ,虽然能够”结束”SQL语句的运行,但是,也会退出当前会话,MySQL 5.7对这一违反直觉的地方进行了改进,不再退出会话。

MySQL 5.7可以explain一个正在运行的SQL,这对于DBA分析运行时间较长的语句将会非常有用。

sys schema是MySQL 5.7.7中引入的一个系统库,包含了一系列视图、函数和存储过程, 该项目专注于MySQL的易用性。

例如:如何查看数据库中的冗余索引;如何获取未使用的索引;如何查看使用全表扫描的SQL语句。

5.可用性

在线设置 复制的过滤规则 不再需要重启MySQL,只需要停止SQLthread,修改完成以后,启动SQLthread。

在线修改buffer pool的大小。

Online DDL MySQL 5.7支持重命名索引和修改varchar的大小,这两项操作在之前的版本中,都需要重建索引或表。

在线开启GTID ,在之前的版本中,由于不支持在线开启GTID,用户如果希望将低版本的数据库升级到支持GTID的数据库版本,需要先关闭数据库,再以GTID模式启动,所以导致升级起来特别麻烦。

6.性能优势

6.1 临时表的性能改进。

  • 临时表只在当前会话中可见

  • 临时表的生命周期是当前连接(MySQL宕机或重启,则当前连接结束)

6.2 只读事务性能改进。

  • MySQL 5.7通过 避免为只读事务分配事务ID ,不为只读事务分配回滚段,减少锁竞争等多种方式,优化了只读事务的开销,提高了数据库的整体性能。

6.3 加速连接处理。

  • 在MySQL 5.7之前,变量的初始化操作(THD、VIO)都是在连接接收线程里面完成的,现在将这些工作下发给工作线程,以减少连接接收线程的工作量,提高连接的处理速度。这个优化对那些频繁建立短连接的应用,将会非常有用。

6.4 复制性能的改进 (支持多线程复制(Multi-Threaded Slaves, 简称MTS)

  • MySQL的默认配置是库级别的并行复制,为了充分发挥MySQL 5.7的并行复制的功能,我们需要将slave-parallel-type配置成 LOGICAL_CLOCK。

  • 支持多源复制(Multi-source replication)

7.默认参数的改变

  • 默认binlog格式调整为ROW格式

  • 默认binlog错误后的操作调整为ABORT_SERVER

  • 在先前的选项下(binlog_error_action=IGNORE_ERROR),如果一个错误发生,导致无法写入binlog,mysql-server会在错误日志中记录错误并强制关闭binlog功能。这会使mysql-server在不记录binlog的模式下继续运行,导致从库无法继续获取到主库的binlog。

  • 默认开启mysql崩溃时的binlog安全。

  • 默认调低slave_net_timeout。

8.安装不同

8.1 MySQL 5.6:初始化数据时需要进到家目录的 script 目录下

/usr/local/mysql/scripts/mysql_install_db
–basedir=/usr/local/mysql/
–datadir=/data/mysql
–defaults-file=/etc/my.cnf
–user=mysql
此时数据库密码为空。

8.2 MySQL 5.7:初始化数据时需要进到家目录的 bin 目录下

[root@localhost mysql]# bin/mysqld \\
--initialize \      #会生成临时密码
--user=mysql \     #拿取数据的时候使用的用户身份
--basedir=/application/mysql-5.7 \     #在初始化的时候调用MySQL程序的目录位置
--datadir=/application/mysql-5.7/data      #存放数据的目录

注:–initialize 会自动生成密码在 error log 里面。如果加 --initialize-insecure 密码为空。

二、MySQL 5.6 的安装步骤

1.查看并解压源码包

[root@localhost ~]# ls
mysql-5.6.26.tar.gz
[root@localhost ~]# tar -zxvf mysql-5.6.26.tar.gz -C /opt

2.安装环境

[root@localhost ~]# yum -y install \
ncurses-devel \         ##提供字符终端处理库
autoconf \        ## 是用于适应多种Unix类系统的 shell脚本的工具
cmake

3.CMAKE编译并安装

[root@localhost ~]# cd /opt/mysql-5.6.26/
[root@localhost mysql-5.6.26]# cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
[root@localhost mysql-5.6.26]# make -j3 && make install

4.配置my.cnf和启动脚本

[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf  ##用模板配置覆盖原有的my.cnf文件内容
cp: overwrite ‘/etc/my.cnf’? yes
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld   ##将模板启动脚本放到init.d下的mysqld中
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld       ##给与执行权限
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chkconfig  mysqld --level 235 on

5.添加环境变量

[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

6.创建程序账号,并授权

[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/

7.初始化MySQL配置

[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \          ##库文件目录
--basedir=/usr/local/mysql \
--datadir=/home/mysql
[root@localhost mysql-5.6.26]# ln -s /var/lib/mysql/mysql.sock  /home/mysql/mysql.sock  ##不插入这条有时会连接不上数据库

[root@localhost mysql-5.6.26]# vi  /etc/init.d/mysqld
……省略部分
basedir=/usr/local/mysql       ##填路径,工作目录   
datadir=/home/mysql     ##数据存放目录

8.开启数据库,并设置密码登入

[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# netstat -anpt | grep 3306
[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "abc123" 

http://www.niftyadmin.cn/n/3573272.html

相关文章

51nod 1416:两点 深搜

1416 两点题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题收藏关注福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”。基础级别的时候是在一个nm单元上玩的。像这样: …

四川轻工与计算机学院校训,常州轻工职业技术学院校训及含义:诚信 笃实 勤俭 创新...

校训历来是一所学校珍贵的价值遗产和宝贵的精神财富,是一所学校精神的集中表达。新东方在线高考网特别整理了常州轻工职业技术学院校训,供参考!诚信 笃实 勤俭 创新——常州轻工职业技术学院校训。校训是一所学校长期以来办学理念、办学风格的…

mysql数据库主从同步(非交互式)

mysql数据库主从同步非交互式配置步骤,本文以一台mysql数据库多实例3306和3308为例进行配置,3306为主库,3308为从库(多台单实例与一台多实例配置是一样的)一.my.cnf文件配置1.修改my.cnf配置文件,主数据库3…

LeetCode 1232、缀点成线

1232、缀点成线 1)题目描述 给定一个数组 coordinates ,其中 coordinates[i] [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。 示例 1: 输入:…

java并发编程 性能与可伸缩性_Java并发编程实战 第11章 性能与可伸缩性

关于性能性能的衡量标准有很多,如:服务时间,等待时间用来衡量程序的"运行速度""多快"。吞吐量,生产量用于衡量程序的"处理能力",能够完成"多少"工作。多快和多少有时候是互相…

计算机无法共享没有启动不,windows共享文件时右键不出现共享没有共享的选项...

windows右键不出现共享的解决方法问题现象:当我们想在window2003下共享文件时,发现右击文件夹,并没有“共享”的选项解决步骤:首先验证:A.是否administrator身份登录本地连接属性,B.“文件打印机共享”的服…

java annoataion_Java 注解(Annoation)学习笔记

1 Junit中的Test为例:1.1 用注解(Test)前private booleanisTestMethod(Method m) {returnm.getParameterTypes().length 0 &&m.getName().startsWith("test") &&m.getReturnType().equals(Void.TYPE);}用注解前(Junit4之前),J…

书山有径——走进清华大学图书馆

在你的印象中,图书馆应该是什么样子的?很多人的脑海中还闪现着书架、借书、还书等这样的传统场景。实际上,随着信息技术的发展,互联网成为知识传播的一个重要载体,图书馆的服务远不止传统的借还书业务,而是充分利用网…