【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 架构在大并发的演进过程更简单 ...
随机推荐
- HDU 5726 GCD (2016多校、二分、ST表处理区间GCD、数学)
题目链接 题意 : 给出一个有 N 个数字的整数数列.给出 Q 个问询.每次问询给出一个区间.用 ( L.R ) 表示.要你统计这个整数数列所有的子区间中有多少个和 GCD( L ~ R ) 相等.输 ...
- R-ts()
概述 ts(gm,frequency=12,start=c(1975,1)) 这个命令表示: frequency=12表明时间单位为年,而且在每一个时间单位中有12个均匀间隔的观察值. 因此gm是 ...
- ESPCMS的CSRF添加管理员账号
ESPCMS的CSRF添加管理员账号 前言 这里开始的思路是先注入进去 然后getshell 但是不关CSRF什么事 换思路 看了一下群消息 大哥发了一个视频 后台名称admin admin12 ...
- CLion配置Cygwin环境
CLion "download" 跳转到 https://cygwin.com/install.html 下载64位安装程序并安装 国内添加网易镜像 http://mirrors. ...
- 前端中的 Attribute & Property
为了在翻译上显示出区别,Attribute一般被翻译为特性,Property被译为属性. 在使用上面,Angular已经表明态度 Template binding works with propert ...
- leetcode题目19.删除链表的倒数第N个节点(中等)
题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后 ...
- kindeditor 引用js架包问题
最近在搞kindeditor(富文本编辑器),遇到了很多插件修改无效的问题,仔细研究了一下才发现,别有洞天. 下面来介绍一下引用的js架包.具体有什么用. <!-- kindeditor.js ...
- DP&图论 DAY 3 上午
DP&图论 DAY 3 上午 状态压缩dp >状态压缩dp ◦状态压缩是设计dp状态的一种方式.◦当普通的dp状态维数很多(或者说维数与输入数据有关),但每一维总量很少是,可以将多维 ...
- SQL学习(三)Select语句:返回前多少行数据
在实际工作中,我们可能根据某种排序后,只需要显示前多少条数据,此时就需要根据不同的数据库,使用不同的关键字 一.SQL Server/Access select top 数量/百分比 from tab ...
- 程序员查问题还是要找stackoverflow
今天定位了一个问题,其实也不是多复杂. 现场的数据是postgres dump出来的,想拿到本地服务器restore后定位问题. 本地restore后报错,报sequence as data_type ...