• Linux6 将 mysql5.1 升级到 mysql8.0(yum源)


    Linux6 将 mysql5.1 升级到 mysql8.0(yum源)

     由于我的mysql是5.1版本的,导入SQL时,字符编码是utf8mb4的,mysql得版本5.5以上才支持,故低版本的报错。

    utf8与utf8mb4(utf8 most bytes 4)

    • MySQL 5.5.3之后增加了utfmb4字符编码
    • 支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符
    • 最多使用四个字节存储字符

    utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。

    标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。
    MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。

    将mysql 5.1 升级到 8.0

    官网下载对应系统的yum源

     将rpm包上传到服务器,然后安装

    # yum install mysql80-community-release-el6-3.noarch.rpm 
    Loaded plugins: fastestmirror
    Setting up Install Process
    ...
    
    Installed:
      mysql80-community-release.noarch 0:el6-3                                           
    
    Complete!

    8.0版本的yum源配置后,进行升级操作,升级前确认已经备份好数据库及对应的配置文件。关掉mysql服务。

    [root@centos6 download]# service mysqld stop
    Stopping mysqld:                                           [  OK  ]
    [root@centos6 download]# 

    不需要卸载原来的mysql,使用“yum update”升级即可

    [root@centos6 download]# yum update mysql-server
    Loaded plugins: fastestmirror
    Setting up Update Process
    Loading mirror speeds from cached hostfile
    ...
    =====================================================================================
     Package                        Arch      Version         Repository            Size
    =====================================================================================
    Installing:
     mysql-community-client         x86_64    8.0.19-1.el6    mysql80-community     47 M
         replacing  mysql.x86_64 5.1.73-8.el6_8
     mysql-community-devel          x86_64    8.0.19-1.el6    mysql80-community    7.8 M
         replacing  mysql-devel.x86_64 5.1.73-8.el6_8
     mysql-community-libs           x86_64    8.0.19-1.el6    mysql80-community    4.6 M
         replacing  mysql-libs.x86_64 5.1.73-8.el6_8
     mysql-community-libs-compat    x86_64    8.0.19-1.el6    mysql80-community    1.7 M
         replacing  mysql-libs.x86_64 5.1.73-8.el6_8
     mysql-community-server         x86_64    8.0.19-1.el6    mysql80-community    520 M
         replacing  mysql-server.x86_64 5.1.73-8.el6_8
    Installing for dependencies:
     mysql-community-common         x86_64    8.0.19-1.el6    mysql80-community    727 k
     numactl                        x86_64    2.0.9-2.el6     base                  74 k
    
    Transaction Summary
    =====================================================================================
    Install       7 Package(s)
    
    Total download size: 582 M
    ...
    
    Replaced:
      mysql.x86_64 0:5.1.73-8.el6_8            mysql-devel.x86_64 0:5.1.73-8.el6_8       
      mysql-libs.x86_64 0:5.1.73-8.el6_8       mysql-server.x86_64 0:5.1.73-8.el6_8      
    
    Complete!

    升级后启动,会发现启动失败。

    [root@centos6 download]# service mysqld start
    MySQL Daemon failed to start.
    Starting mysqld:                                           [FAILED]

    查看日志

    [root@centos6 ~]# tail /var/log/mysqld.log
    2020-03-04T08:13:26.769860Z 0 [ERROR] [MY-010119] [Server] Aborting
    2020-03-04T08:13:26.770601Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
    2020-03-04T08:17:11.990871Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 8227
    2020-03-04T08:17:12.009990Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.
    2020-03-04T08:17:12.075334Z 1 [ERROR] [MY-012263] [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!
    2020-03-04T08:17:12.075438Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
    2020-03-04T08:17:12.573744Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
    2020-03-04T08:17:12.573957Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
    2020-03-04T08:17:12.574061Z 0 [ERROR] [MY-010119] [Server] Aborting
    2020-03-04T08:17:12.574769Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.

    解决方法
    # cd /var/lib/mysql
    #rm -rf /var/lib/mysql/ib*
    主要删除:ibdata1、ib_logfile0、ib_logfile1文件
    之前有安装mysql-server5.1删除文件重构后,异常解决。

    重启验证

    [root@centos6 mysql]# /etc/init.d/mysqld restart
    Stopping mysqld:                                           [  OK  ]
    Initializing MySQL database:                               [  OK  ]
    Starting mysqld:                                           [  OK  ]

    查看mysql版本

    [root@centos6 mysql]# mysql -V
    mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

    说明已经升级成功,重新导入之前备份的数据库文件,即可使用。

  • 相关阅读:
    Codeforces Round #527 (Div. 3) B. Teams Forming
    Train Problem I (栈的基本运用)
    浙江中医药大学第十二届大学生程序设计竞赛 J. Jhadgre爬楼梯
    判断二进制半整数
    简易连连看
    Codeforces Round #527 (Div. 3) A. Uniform String
    求字符串中出现次数最多的字符 JAVA
    母猪的故事 (递推题)
    C#判断文件和文件夹是否存在 不存在则创建
    C# 数据库备份与还原 小妹做了一个winform系统,需要对sql2000数据库备份和还原(小妹妹你太狠了)
  • 原文地址:https://www.cnblogs.com/zwj-linux/p/12410312.html
Copyright © 2020-2023  润新知