目录

【1】、升级操作

【2】、mysql 5.6安装(二进制)

【3】、mysql 5.7安装(二进制)

【1】、升级操作

核心步骤

【1.1】停止mysql 5.6

【1.2】把环境变量引用到Mysql 5.7 二进制文件目录

【1.3】 起服,然后在linux环境下使用,mysql_upgrade -uroot -p -s --force  升级 (-s参数是只升级系统表,不加该参数使用该命令其实是把5.6的所有表数据以5.7的方式全部重建一次,需要耗时很久)

--停止mysql
/etc/init.d/mysqld stop --解除5.6链接
[root@mysql02 local]# unlink mysql
[root@mysql02 local]# ll
总用量
drwxr-xr-x. root root 9月 bin
drwxr-xr-x. root root 9月 etc
drwxr-xr-x. root root 9月 games
drwxr-xr-x. root root 9月 include
drwxr-xr-x. root root 9月 lib
drwxr-xr-x. root root 9月 lib64
drwxr-xr-x. root root 9月 libexec
drwxr-xr-x. root mysql 7月 : mysql-5.6.-linux-glibc2.-x86_64
-rw-r--r--. root root 6月 : mysql-5.6.-linux-glibc2.-x86_64.tar.gz
-rw-r--r--. root root 5月 : mysql-5.7.-linux-glibc2.-x86_64.tar.gz
drwxr-xr-x. root root 9月 sbin
drwxr-xr-x. root root 7月 : share
drwxr-xr-x. root root 9月 src --创建5.7的链接
[root@mysql02 local]# ln -s mysql-5.7.-linux-glibc2.-x86_64 mysql
[root@mysql02 local]# ll
总用量
drwxr-xr-x. root root 9月 bin
drwxr-xr-x. root root 9月 etc
drwxr-xr-x. root root 9月 games
drwxr-xr-x. root root 9月 include
drwxr-xr-x. root root 9月 lib
drwxr-xr-x. root root 9月 lib64
drwxr-xr-x. root root 9月 libexec
lrwxrwxrwx. root root 7月 : mysql -> mysql-5.7.-linux-glibc2.-x86_64
drwxr-xr-x. root mysql 7月 : mysql-5.6.-linux-glibc2.-x86_64
-rw-r--r--. root root 6月 : mysql-5.6.-linux-glibc2.-x86_64.tar.gz
drwxr-xr-x. root root 7月 : mysql-5.7.-linux-glibc2.-x86_64
-rw-r--r--. root root 5月 : mysql-5.7.-linux-glibc2.-x86_64.tar.gz
drwxr-xr-x. root root 9月 sbin
drwxr-xr-x. root root 7月 : share
drwxr-xr-x. root root 9月 src --升级
[root@mysql02 bin]# mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK --登陆
[root@mysql02 bin]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.-log MySQL Community Server (GPL) Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. --在生产环境当中只需要升级系统表即可
mysql_upgrade -u root -p -s --force

二、mysql5.6、5.7 安装

  【2.1】下载与解压

    mysql官网下载过来,这里就不具体描述了(不会的参考:如何下载数据库?

    这里5.6和5.7的二进制包全部下载好了,并且解压好了。这里我的目录是 /mysql/app/

      

  【2.2】对解压好的5.6文件夹做软连接

    ln -s mysql-5.6.45-linux-glibc2.12-x86_64 mysql

      

  【2.3】准备好my.cnf文件(/mysql/data/3306/my.cnf)

[mysqld]
server-id =
port =
user = mysql
datadir = /mysql/data//data
basedir = /mysql/app/mysql #这个如果不加,无法使用默认的support-files/mysql.server 文件启动,且配置文件必须放在4个读取路径下
#参数文件默认读取顺序:【1】/etc/my.cnf  【2】/etc/mysql/my.cnf  【3】/usr/local/mysql/my.cnf  【4】~/.my.cnf

  【2.4】创建mysql用户,并且配置文件上的目录全部要新建好,并且授权给mysql

groupadd mysql
useradd mysql -r -g mysql -s /sbin/false  
mkdir -p /mysql/data//data
chown -R mysql:mysql /mysql
chomd 755 /mysql

  【2.5】设置环境变量  

echo 'export PATH=/mysql/app/mysql/bin:$PATH'>>/etc/profile
source /etc/profile

  【2.6】开始安装

#5.6 切换到 /mysql/app/mysql下
./scripts/mysql_install_db --user=mysql --defaults-file=/mysql/data/3306/my.cnf --basedir=/mysql/app/mysql #5.7 初始化
mysqld --initialize --defaults-file=/mysql/data/3306/my.cnf --basedir=/mysql/app/mysql --user=mysql --console

  【2.7】启动

mysqld_safe --defaluts-file=/mysql/data//my.cnf --user=mysql

  【2.8】登录

#5.6直接输入mysql即可,mysql5.6没有默认密码
mysql #5.7 需要输入密码
#一般情况下,密码再错误日志里面 但是我们上面初始化的时候,加了参数 --console 这就会在屏幕上打印出来,找到密码复制即可
mysql -uroot -p -h127.0.0.1

 

MySQL 5.6升级5.7都有什么注意事项

一、升级方式

MySQL升级的方式一般来说有两种
1、通过inplace方式原地升级,升级系统表
2、通过新建实例,高版本作为低版本的从库进行滚动升级

MySQL5.7版本做了非常多的改变,升级5.6到5.7时需要考虑兼容性,避免升级到5.7之后因为种种参数设置不正确导致业务受影响,建议首先逐一查看release note

二、需要注意的参数及问题:

1、sql_mode:MySQL 5.7采用严格模式,例如ONLY_FULL_GROUP_BY等
2、innodb_status_output_locks:MySQL 5.7支持将死锁信息打印到error log(其实这个参数MySQL 5.6就已支持)
3、innodb_page_cleaners:MySQL 5.7将脏页刷新线程从master线程独立出来了,对应参数为innodb_page_cleaners
4、innodb_strict_mode:控制CREATE TABLE, ALTER TABLE, CREATE INDEX, 和 OPTIMIZE TABLE的语法问题
5、show_compatibility_56=ON:控制show变量及状态信息输出,如果未开启show status 命令无法获取Slave_xxx 的状态
6、log_timestamps:控制error log/slow_log/genera log日志的显示时间,该参数可以设置为:UTC 和 SYSTEM,但是默认使用 UTC
7、disable_partition_engine_check:在表多的情况下可能导致启动非常慢
8、range_optimizer_max_mem_size:范围查询优化参数,这个参数限制范围查询优化使用的内存,默认8M
9、MySQL 5.7新增优化器选项derived_merge=on,可能导致SQL全表扫描,而在MySQL 5.6下可能表现为auto key
10、innodb_undo_directory && innodb_undo_logs:MySQL 5.7支持将undo从ibdata1独立出来(只支持实例初始化,不支持在线变更)
11、主从复制问题:MySQL5.7到小于5.6.22的复制存在bug(bug 74683)
12、SQL兼容性问题:SQL在MySQL 5.7和MySQL 5.6环境下结果可能不一致,因此建议获取线上SQL,在同样数据的环境下,在两个实例运行获取到的结果计算hash,比较hash值做兼容性判断

三、友情提醒

1、升级前一定要做好备份!!!
2、升级正式环境前提前在测试环境进行仔细测试,确认无误以后再升级正式环境
3、做好相应的回退方案

【0.1】mysql版本升级(5.6升级到5.7)的更多相关文章

  1. MySQL/MariaDB/Percona数据库升级脚本

    MySQL/MariaDB/Percona数据库升级脚本截取<OneinStack>中upgrade_db.sh, 一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们.为防止大版本 ...

  2. mysql 5.6.15升级到5.6.43

    今天闲来无事,观察测试环境的zabbix服务器,发现内存泄漏严重,于是重启了,想起了前几天写的帖子发生了严重的内存泄漏可以把mysql升级到最新的小版本 于是乎就试着升级 old version:5. ...

  3. MySQL版本升级之5.6到5.7

    两种升级方式 In-Place Upgrade: Involves shutting down the old MySQL version, replacing the old MySQL binar ...

  4. MySQL 5.1.73升级为MySQL 5.5.35详解

    一.前言 二.概述 三.安装MySQL 5.1.73 四.升级为MySQL 5.5.35 五.总结 注,测试环境 CentOS 6.4 x86_64,MySQL 版本(5.1.73.5.5.35)目前 ...

  5. 24.Mysql高级安装和升级

    24.Mysql高级安装和升级24.1 Linux/Unix平台下的安装 24.1.1 安装包比较Linux下的Mysql安装包分为RPM包.二进制包.源码包3种.RPM包优点是安装简单,适合初学者: ...

  6. 在CentOS上把MySQL从5.5升级到5.6(转)

    http://www.th7.cn/db/mysql/201408/66064.shtml 在CentOS上把MySQL从5.5升级到5.6 摘要:本文记录了在CentOS 6.3上,把MySQL从5 ...

  7. 在CentOS上把MySQL从5.5升级到5.6

    在CentOS上把MySQL从5.5升级到5.6 摘要:本文记录了在CentOS 6.3上,把MySQL从5.5.28升级到5.6.19的过程. 1. 概述 在我做的一个项目中,最近我对生产服务器上的 ...

  8. mysql从5.6升级到5.7后出现 Expression #1 of ORDER BY clause is not in SELECT list,this is incompatible with DISTINCT

    [问题]mysql从5.6升级到5.7后出现:插入数据和修改数据时出错Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: - ...

  9. 8.0.17 MySQL Community Server 二进制手工安装

    8.0.17 MySQL Community Server 二进制手工安装 环境简介 操作系统:Centos 6.10 64位目前版本:8.0.17 MySQL Community Server 二进 ...

  10. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

随机推荐

  1. addClass(class|fn)

    addClass(class|fn) 概述 为每个匹配的元素添加指定的类名.深圳dd马达   参数 classStringV1.0 一个或多个要添加到元素中的CSS类名,请用空格分开 function ...

  2. java中报错:problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError

    今天和往常一样打开项目,竟然报错problem with class file or dependent class; nested exception is java.lang.NoClassDef ...

  3. less的解析笔记

    Less是一种动态的样式语言.Less扩展了CSS的动态行为,比如说,设置变量(Variables).混合书写模式(mixins).操作(operations)和功能(functions)等等,最棒的 ...

  4. CentOS7 安装MySQL8修改密码

    1. 添加MySQL8的本地源 执行以下命令获取安装MySQL源 [root@virde ~]# wget https://repo.mysql.com//mysql80-community-rele ...

  5. 微信小程序_(校园视)开发用户注册登陆

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

  6. JavaWeb-SpringBoot(抖音)_二、服务器间通讯

    JavaWeb-SpringBoot(抖音)_一.抖音项目制作 传送门 JavaWeb-SpringBoot(抖音)_二.服务器间通讯 传送门 JavaWeb-SpringBoot(抖音)_三.抖音项 ...

  7. 批量插入数据@Insert

    // 批量插入数据 @Insert("<script>" + "insert into index_kline (currency_id, currency, ...

  8. IDEA远程执行详解

    新建一个springboot项目 新建一个java class: @RestController public class TestController { @RequestMapping(" ...

  9. python2topython3遇到的问题

  10. html5-meta标签和搜索引擎

    emta标签的组成: meta标签分两大部分:HTTP-EQUIV  和  NAME  变量. HTTP-EQUIV:HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助 ...