MySQL 5.6升级至MySQL 5.7--------版本升级最佳实战

1. 背景

MySQL 5.7是当前MySQL最新版本,与MySQL 5.6版本相比,有如下特征

  * 性能和可扩展性:改进 InnoDB 的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作。

* JSON支持:使用 MySQL 的 JSON 功能,你可以结合 NoSQL 的灵活和关系数据库的强大。

* 改进复制 以提高可用性的性能。包括多源复制,多从线程增强,在线 GTIDs,和增强的半同步复制。

* 性能模式 提供更好的视角。我们增加了许多新的监控功能,以减少空间和过载,使用新的 SYS 模式显著提高易用性。

* 安全: 我们贯彻“安全第一”的要求,许多 MySQL 5.7 新功能帮助用户保证他们数据库的安全。

* 优化: 重写了大部分解析器,优化器和成本模型。这提高了可维护性,可扩展性和性能。

* GIS: MySQL 5.7 全新的功能,包括 InnoDB 空间索引,使用 Boost.Geometry,同时提高完整性和标准符合性。

2. 当前运行的MySQL 5.6环境

* MySQL当前版本

[[email protected] ~]# /usr/local/mysql/bin/mysql  -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.36    |
+-----------+
1 row in set (0.05 sec)

mysql>

* MySQL所在目录

[[email protected] ~]# ll /usr/local/mysql-5.6.36-linux-glibc2.5-x86_64
total 72
drwxr-xr-x  2 mysql mysql  4096 Jun 24 04:05 bin
-rw-r--r--  1 mysql mysql 17987 Mar 18 14:43 COPYING
drwxr-xr-x  3 mysql mysql  4096 Jun 24 04:05 data
drwxr-xr-x  2 mysql mysql  4096 Jun 24 04:05 docs
drwxr-xr-x  3 mysql mysql  4096 Jun 24 04:05 include
drwxr-xr-x  3 mysql mysql  4096 Jun 24 04:06 lib
drwxr-xr-x  4 mysql mysql  4096 Jun 24 04:05 man
-rw-r--r--  1 root  root    943 Jun 24 04:08 my.cnf
drwxr-xr-x 10 mysql mysql  4096 Jun 24 04:05 mysql-test
-rw-r--r--  1 mysql mysql  2496 Mar 18 14:43 README
drwxr-xr-x  2 mysql mysql  4096 Jun 24 04:05 scripts
drwxr-xr-x 28 mysql mysql  4096 Jun 24 04:05 share
drwxr-xr-x  4 mysql mysql  4096 Jun 24 04:06 sql-bench
drwxr-xr-x  2 mysql mysql  4096 Jun 24 04:05 support-files

* MySQL 数据所在目录

[[email protected] ~]# ll /data/mysql_data
total 110616
-rw-rw---- 1 mysql mysql       56 Jun 24 04:10 auto.cnf
-rw-rw---- 1 mysql mysql 12582912 Jun 24 04:10 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Jun 24 04:10 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Jun 24 04:08 ib_logfile1
drwx------ 2 mysql mysql     4096 Jun 24 04:08 mysql
-rw-rw---- 1 mysql mysql     1771 Jun 24 04:10 MySQL.err
-rw-rw---- 1 mysql mysql        6 Jun 24 04:10 MySQL.pid
drwx------ 2 mysql mysql     4096 Jun 24 04:08 performance_schema
drwx------ 2 mysql mysql     4096 Jun 24 04:08 test

* MySQL 启动脚本basedir与datadir设置

[[email protected] ~]# grep -E ‘^basedir=|^datadir=‘ /etc/init.d/mysqld 
basedir=/usr/local/mysql
datadir=/data/mysql_data

 

3. 升级

* 正常停止数据库

[[email protected] mysql]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!

* 下载 MySQL 5.7 最新版 [ 推荐从MySQL官方下载 ]

[[email protected] ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

* 解压到指定目录

[[email protected] ~]# tar zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

* 删除原有的软链接

[[email protected] ~]# unlink /usr/local/mysql

* 新建软链接指向 MySQL 5.7目录

[[email protected] ~]# ln -s  /usr/local/mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql

* 通过脚本启动MySQL

[[email protected] ~]# /etc/init.d/mysqld start
Starting MySQL..... SUCCESS!

* 利用MySQL 5.7包中的mysql_upgrade 升级MySQL数据中的系统表 -p指定密码

[[email protected] ~]# /usr/local/mysql/bin/mysql_upgrade -s -p123456
mysql_upgrade: [Warning] Using a password on the command line interface can be insecure.
The --upgrade-system-tables option was used, databases won‘t be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.

* 连接MySQL服务查看版本

[[email protected] ~]# /usr/local/mysql/bin/mysql -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.18 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.18    |
+-----------+
1 row in set (0.00 sec)


4. 总结

以需求驱动技术,技术本身没有优略之分,只有业务之分。

时间: 2024-10-13 11:20:22

MySQL 5.6升级至MySQL 5.7--------版本升级最佳实战的相关文章

MySQL 5.6升级至MySQL 5.7

1. 背景 MySQL 5.7是当前MySQL最新版本,与MySQL 5.6版本相比,有如下特征 * 性能和可扩展性:改进 InnoDB 的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作. *JSON支持:使用 MySQL 的 JSON 功能,你可以结合 NoSQL 的灵活和关系数据库的强大. * 改进复制 以提高可用性的性能.包括多源复制,多从线程增强,在线 GTIDs,和增强的半同步复制. * 性能模式 提供更好的视角.我们增加了许多新的监控功能,以减少空间和过载,使用新的 S

MySQL 5.5 升级至MySQL 5.6

升级方式: ONE:In-place Upgrade 涉及关掉老版本MySQL,替换老版本MySQL的binaries or packages成新的(系统库替换,及软件替换),重启MySQL以存在的data目录,运行mysql_upgrade. TWO:Logical Upgrade 涉及mysqldump导出老版本中的存在的数据,安装新版本的MySQL,加载dump出的数据到新的MySQL版本中,运行mysql_upgrade. THREE:通过主从替换,从做成MySQL5.6版本,然后进行切

MySQL权限及删除MySQL的匿名账户

MySQL权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证,不合法的用户拒绝连接: (2)对通过认证的合法用户赋予相应的权限,用户可以在这些权限范围内对数据库做相应的操作. 对于身份的认证,MySQL是通过IP地址和用户名联合进行确认的,例如MySQL安装后默认创建的用户[email protected]表示用户root只能从本地(localhost)进行连接才可以通过认证,此用户从其他任何主机对数据库进行的连接都将被拒绝.也就

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)

*************************************部署MYSQL******************************************* yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison* useradd mysql -d /usr/loc

mysql中间件amoeba实现mysql读写分离

Amoeba是一个以MySQL为底层数据存储,并相应用提供MySQL协议接口的proxy.它集中地响应应用的请求,根据用户事先设置的规则.将SQL请求发送到特定的数据库上运行.基于此能够实现负载均衡.读写分离.高可用性等需求.与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单).本文就来实现一个简单的amoeba的配置 实验环境: 192.168.1.121为amoeba

解决Linux下MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

刚装完MySQL,启动时报如下错误: Starting MySQL.Manager of pid-file quit without updating file.[FAILED] 依次尝试了从谷歌找到的各种方法,发现只要执行如下MySQL初始化命令即可解决: /usr/local/mysql/bin/mysql_install_db --user=mysql 下面附上从谷歌找到的解决此问题的方法集锦,也许每个人遇到的问题的原因会不一样,经供参考: 一.查看报错日志 报错日志是我们解决问题的方向灯

[MySQL] SqlServer 迁移到 MySQL 方法介绍

一.原则: 只迁移表结构和数据,存储过程.函数.触发器尽量自己改写,并充分测试. 迁移前,先设置好数据库的一些参数,比如默认存储引擎,默认编码等,方便后续导入. 二.方法: 1.使用MySQL Workbench MySQL Workbench提供了Migration Wizard(数据库迁移)功能,支持MSSQL的数据形式转换为MYSQL下的数据格式: 具体参照这篇文章:http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server

MySQL存储过程详解 mysql 存储过程

MySQL存储过程详解  mysql 存储过程 (2010-12-13 10:59:38) 转载▼ 标签: it 分类: mysql mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保