首页 > 数据库 > MySQL > 正文

MySQL提升从5.1.71到5.7.17

2024-07-24 12:35:38
字体:
来源:转载
供稿:网友
  最近系统漏洞扫描,扫出来很多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-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)

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表