目录

【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. web大文件上传断点续传源码

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  2. 牛客训练41D最小相似度bfs

    最小相似度 题目大意:对于位数相同的两个二进制串,SIM(A,B)为它们的相似度,也就是A^B中0的个数.现在给定一堆串,找出一个T使得max{SIM(S1,T),SIM(S2,T),......,S ...

  3. Android中关于回调概念的笔记

    一.回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调 ...

  4. HDU 5867 Water problem ——(模拟,水题)

    我发这题只是想说明:有时候确实需要用水题来找找自信的~ 代码如下: #include <stdio.h> #include <algorithm> #include <s ...

  5. C++中void和void*指针的含义 (指针类型的含义)

    转载自:http://blog.csdn.net/lee_shuai 指针有两个属性:指向变量/对象的地址和长度,但是指针只存储地址,长度则取决于指针的类型:编译器根据指针的类型从指针指向的地址向后寻 ...

  6. Leetcode题目22.括号生成(动态规划-中等)

    题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "( ...

  7. 将Chrome中的缓存数据移出C盘

    Chrome浏览器会默认的将用户的缓存是数据存放于  C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data文件夹内.用久了之后,就会积攒大量缓存数据 ...

  8. 从GoogleClusterData统计每个用户的使用率、平均每次出价

    之前将google cluster data导入了Azure上的MySQL数据库,下一步就是对这些数据进行分析, 挖掘用户的使用规律了. 首先,为了加快执行速度,对user,time等加入索引. 然后 ...

  9. C# lock 为什么要设置成只读

    首先给出MSDN的定义: lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断.这是通过在代码块运行期间为给定对象获取互斥锁来实现的. 先来看看执行过程,代码示例如下: 假设线程A先执行, ...

  10. Maven-SSM框架整合

    1.创建Maven项目 配置pom.xml依赖 <!-- 允许创建jsp页面 --> <dependency> <groupId>javax.servlet< ...