【0.1】mysql版本升级(5.6升级到5.7)
目录
【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)的更多相关文章
- MySQL/MariaDB/Percona数据库升级脚本
MySQL/MariaDB/Percona数据库升级脚本截取<OneinStack>中upgrade_db.sh, 一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们.为防止大版本 ...
- mysql 5.6.15升级到5.6.43
今天闲来无事,观察测试环境的zabbix服务器,发现内存泄漏严重,于是重启了,想起了前几天写的帖子发生了严重的内存泄漏可以把mysql升级到最新的小版本 于是乎就试着升级 old version:5. ...
- MySQL版本升级之5.6到5.7
两种升级方式 In-Place Upgrade: Involves shutting down the old MySQL version, replacing the old MySQL binar ...
- 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)目前 ...
- 24.Mysql高级安装和升级
24.Mysql高级安装和升级24.1 Linux/Unix平台下的安装 24.1.1 安装包比较Linux下的Mysql安装包分为RPM包.二进制包.源码包3种.RPM包优点是安装简单,适合初学者: ...
- 在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 ...
- 在CentOS上把MySQL从5.5升级到5.6
在CentOS上把MySQL从5.5升级到5.6 摘要:本文记录了在CentOS 6.3上,把MySQL从5.5.28升级到5.6.19的过程. 1. 概述 在我做的一个项目中,最近我对生产服务器上的 ...
- 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: - ...
- 8.0.17 MySQL Community Server 二进制手工安装
8.0.17 MySQL Community Server 二进制手工安装 环境简介 操作系统:Centos 6.10 64位目前版本:8.0.17 MySQL Community Server 二进 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
随机推荐
- jQuery.post(url, [data], [callback], [type])
jQuery.post(url, [data], [callback], [type]) 概述 通过远程 HTTP POST 请求载入信息. 这是一个简单的 POST 请求功能以取代复杂 $.ajax ...
- Bootloader - Main system - Recovery的三角关系
原文地址:http://blog.csdn.net/myarrow/article/details/8115610 一.MTD分区:BOOT: boot.img,Linux kernel ...
- matplotlib(二):折线图
import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates # 解决中文显示问题 plt. ...
- fatal error C1189: #error: "Oops: min() and/or max() are defined as preprocessor macros. Define NOMINMAX macro before including any system headers!"
1.问题描述 vs2015 使用pg数据库的C++库文件4.0.1版本libpqxx.dll,包含头文件#include "pqxx\pqxx" 出现这个错误: fatal err ...
- Spring boot 读取resource目录下的文件
背景:最近做项目重构将以前的ssh + angular js架构,重构为spring boot + vue.项目是一个数据管理平台,后台涉及到多表关联查询,数据导入导出等. 问题:读取resource ...
- C++入门经典-例8.5-多重继承
1:C++允许子类从多个父类继承公有的和受保护的成员,这称为多重继承. 2:多重继承的定义.多重继承有多个基类名称标识符,其声明形式如下: class 派生类名标识符:[继承方式] 基类名标识符1,. ...
- org.apache.ibatis.binding.BindingException: Parameter 'xxx' not found.
1. 情景重现 1.1 Mapper 代码 public interface DeviceFileInfoVOMapper { List<QueryFileDTO> selectVideo ...
- Mac安装软件提示文件损坏
Mac安装软件提示文件损坏,请移至废纸篓 sudo spctl --master-disable
- windows下ch340 usb转串口芯片的驱动从哪里下载?
答: 请点击此处下载
- 2018年第一记:EDM策略分享-EDM营销的策略分析
很久没有上博客园来更新下文章了,一则因为工作繁忙,二则对技术方面的研究时间花的少了,目前主要侧重于EDM营销方面的策略制定.很多人跟我说,做EDM营销都茫然无头绪,那么做EDM到底有什么策略呢?下面博 ...