mysql 5.1.71_MySQL升级从5.1.71到5.7.17
最近系统漏洞扫描,扫出来很多MySQL的漏洞,没有什么好的办法,先升级到最新版本。在梳理MySQL数据库信息时发现有一套zabbix用的MySQL版本是5.1.71的,现在的最新版本是5.7.17,版本跨越的太大了,不知道直接升级是否可行。库的数据量大概15G,于是就想先备份,备份完后用mysql_upgrade做升级。如果实在不行就再新创建一套库把数据导进去。
下面是在虚拟机上测试的升级步骤,中间也遇到了一些问题,不过好在最后还是升级成功了,说明这条路还是可行了。
操作系统版本RHEL 6.7 旧的MySQL版本5.1.71,新的MySQL版本5.7.17。
1、查看旧的MySQL版本,并创建测试数据库和测试表
mysql> select version();
+------------------+
| version() |
+------------------+
| 5.1.71-community |
+------------------+
mysql> create database zx;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| zx |
+--------------------+
4 rows in set (0.00 sec)
mysql> use zx;
Database changed
mysql> create table test_upgrade (id int);
Query OK, 0 rows affected (0.07 sec)
......
mysql> select count(*) from test_upgrade;
+----------+
| count(*) |
+----------+
| 33554432 |
+----------+
1 row in set (0.00 sec)
现在test_upgrade表里有33554432条数据。
2、停止旧MySQL,并备份数据
[root@rhel6 mysql]# service mysql stop
Shutting down MySQL.. SUCCESS!
#这里直接用cp备份数据
[root@rhel6 lib]# cp -R mysql mysql_bak
[root@rhel6 lib]# du -sk mysql*
250880mysql
250880mysql_bak
3、安装新Msql软件,这里下载的是编译好的解压就可以使用
[root@rhel6 ~]# tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
#解压完后移动到/opt目录下
[root@rhel6 ~]# mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql-5.7.17
[root@rhel6 ~]# mv mysql-5.7.17 /opt
[root@rhel6 ~]# cd /opt
[root@rhel6 opt]# chown -R mysql:mysql mysql-5.7.17/
[root@rhel6 opt]# ll
total 4
drwxr-xr-x. 9 mysql mysql 4096 Mar 22 21:07 mysql-5.7.17
4、修改my.cnf
主要修改basedir参数:
[root@rhel6 opt]# vi /etc/my.cnf
basedir=/opt/mysql-5.7.17
5、启动新MySQL
[root@rhel6 mysql-5.7.17]# ./bin/mysqld_safe &
1)启动报错1:
2017-03-22T13:12:39.131998Z 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!2017-03-22T13:12:39.132028Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2017-03-22T13:12:39.733953Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-03-22T13:12:39.733986Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-03-22T13:12:39.733994Z 0 [ERROR] Failed to initialize plugins.
2017-03-22T13:12:39.734000Z 0 [ERROR] Aborting
解决方法在my.cnf中的[mysqld]部分添加如下参数
innodb_data_file_path = ibdata1:10M:autoextend
再次启动
2)启动报错2:
2017-03-22T13:16:03.374717Z 0 [ERROR] unknown option '--skip-locking'
2017-03-22T13:16:03.374735Z 0 [ERROR] Aborting
解决方法从my.cnf中注释掉相关参数skip-locking
再次启动
3)启动报错3:
2017-03-22T13:18:20.278752Z 0 [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
2017-03-22T13:18:20.278954Z 0 [ERROR] Aborting
5.7无法读取5.1的mysql.user表,解决方法使用--skip-grant-tables参数跳过授权验证
再次启动
[root@rhel6 mysql-5.7.17]# ./bin/mysqld_safe --skip-grant-tables&
启动成功
2017-03-22T13:20:23.919677Z 0 [Note] ./bin/mysqld: ready for connections.
Version: '5.7.17' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
6、执行升级
[root@rhel6 mysql-5.7.17]# ./bin/mysql_upgrade -uroot
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
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Upgrading the sys schema.
Checking databases.
sys.sys_config OK
zx.test_upgrade OK
Upgrade process completed successfully.
Checking if update is needed.
7、重启MySQL,并验证
[root@rhel6 mysql-5.7.17]# ./bin/mysqladmin -uroot -p shutdown
[root@rhel6 mysql-5.7.17]# ./bin/mysqld_safe &
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.17 |
+-----------+
1 row in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
| zx |
+--------------------+
6 rows in set (0.00 sec)
mysql> select count(*) from zx.test_upgrade;
+----------+
| count(*) |
+----------+
| 33554432 |
+----------+
1 row in set (0.01 sec)
验证通过后,删除旧版本的MySQL软件。
mysql 5.1.71_MySQL升级从5.1.71到5.7.17相关推荐
- upgrade lnmpa php.sh,LNMP 状态管理命令说明及Nginx、MySQL/MariaDB、PHP升级教程
状态管理命令分 LNmp状态管理命令 和 LNmpA状态管理命令,LNMPA代表的是Linux下Nginx.MySQL.PHP.Apache这种网站服务器架构,是结合LAMP与LNMP各自的优点而产生 ...
- 在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.1.61_MySQL数据库之将Mysql 5.1.61升级为mysql 5.6.19
本文主要向大家介绍了MySQL数据库之将Mysql 5.1.61升级为mysql 5.6.19 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 环境:mysql-5.1.61 操 ...
- MySQL从5.5升级到5.6,TIMESTAMP的变化
转载来自http://blog.csdn.net/ghsau. MySQL从5.5升级到5.6,TIMESTAMP的变化 TIMESTAMP在MySQL5.5中的行为 第一个未设置默认值的TIMEST ...
- mysql降级导入_mysql 升级和降级
1 官方推荐的两种升级方式: in-place upgrade logical upgrade 2 升级之前: 备份所有数据库,包括系统库mysql [root@Darren1 ~]# mysqldu ...
- centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
原库:*.*.101.73/74 系统环境: Suse 12.4 MySQL: 5.7.29 新库:*.*.110.46/47 系统环境:CentOS7.7 64位 MySQL版本: 5.7.30 [ ...
- 华为云GaussDB(for MySQL)2.0全新升级,三大技术大揭秘
摘要:9月23日,在华为全联接2021主会场,华为高级副总裁.华为云CEO.消费者云服务总裁张平安发表"深耕数字化,一切皆服务"主题演讲,并发布了GaussDB(for MySQL ...
- 更新mysql软件_MySQL软件升级
1. 升级方式 1)就地升级:直接替换原安装目录文件和my.cnf配置文件,利用${MYSQL_HOME}/bin/mysql_upgrade脚本完成系统表的升级.(适用于夸小版本) 2)逻辑升级:利 ...
- Ubuntu 12.04.1 mysql从5.5升级到5.6
Ubuntu 12.04.1 mysql从5.5升级到5.6 1 2 3 4 5 apt-cache search mysql-server sudo apt-add-repository ppa: ...
- Mysql从5.0升级到 5.1.73
近日因为一个特殊需要,对mysql进行升级. 因为担心数据迁移的差别大没有选择5.5. 而且服务器需要运行,不能拖的时间太长. 下载了官方win 32位安装版.安装的时候并没有停止原先的 mysql ...
最新文章
- remote 移除_remote模块的使用(四)
- ThinkCMF 5.1.0 发布:支持 swoole、协议变更为 MIT
- Qt操作SQLite数据库练习(20200215)
- java web开发小记(6)将int类型的list插入到mysql数据库
- Effective Java之努力使失败保持原子性(六十四)
- f450四轴使用技巧
- 51单片机智能小车循迹完整程序_电气与信息工程学院双创协会开展循迹小车培训...
- 为了适应云数据库mySQL产品_为了适应不同的应用场景,云数据库mysql版提供的产品系列包括哪些...
- Kibana 的安装(Windows版本)新手入门
- 理论基础 —— 查找 —— 平衡二叉树
- 项目背景怎么描述_培训回顾 |第六届“互联网+”之创业大赛项目计划书撰写
- 摄像模组中光学相关知识(一)
- 安卓开发中wifi连接打印机打印图片
- 2010年06期《程序员》配套源码及相关链接
- [汇编]汇编学习笔记(6):MASM32编译器编译链接16位汇编
- oeasy教您玩转vim - 3 - # 打开文件
- java爬虫爬取豆瓣电影_小爬虫之爬取豆瓣电影排行榜
- java response.write_response.write()区别response.getWrite().write()
- TensorFlow2 手把手教你实现自定义层
- 一个完全平方数是指一个数乘以自己,例:625=25^2; 特殊的完全平方数是指不仅是完全平方数而且平方后的数中有两个数字是相同的,例: 100=10^2; 144=12^2;
热门文章
- 刀片存储助力发挥融合基础架构优势
- oracle backup imp/exp
- 基于Linux平台Softimage XSI 演示
- Reporting Services Catalog Database File Existence error during installing SQL Server 2008 R2
- 说说封杀BT的几个理由
- Dreamweaver自动生成的垃圾代码
- GreenDao的学习和使用
- 未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。
- 楼层平面放线及标高实测记录_建筑平面图怎么看?教你这样看图,新手也能秒懂...
- 10月18号、19号、20号三天PC端云音乐项目总结