zoukankan      html  css  js  c++  java
  • 【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
    总用量 951200
    drwxr-xr-x. 2 root root 4096 9月 23 2011 bin
    drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
    drwxr-xr-x. 2 root root 4096 9月 23 2011 games
    drwxr-xr-x. 2 root root 4096 9月 23 2011 include
    drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
    drwxr-xr-x. 2 root root 4096 9月 23 2011 lib64
    drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
    drwxr-xr-x. 12 root mysql 4096 7月 14 18:14 mysql-5.6.44-linux-glibc2.12-x86_64
    -rw-r--r--. 1 root root 329105487 6月 9 21:55 mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
    -rw-r--r--. 1 root root 644869837 5月 19 22:59 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
    drwxr-xr-x. 5 root root 4096 7月 9 06:03 share
    drwxr-xr-x. 2 root root 4096 9月 23 2011 src
     
    --创建5.7的链接
    [root@mysql02 local]# ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql
    [root@mysql02 local]# ll
    总用量 951204
    drwxr-xr-x. 2 root root 4096 9月 23 2011 bin
    drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
    drwxr-xr-x. 2 root root 4096 9月 23 2011 games
    drwxr-xr-x. 2 root root 4096 9月 23 2011 include
    drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
    drwxr-xr-x. 2 root root 4096 9月 23 2011 lib64
    drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
    lrwxrwxrwx. 1 root root 35 7月 17 21:46 mysql -> mysql-5.7.26-linux-glibc2.12-x86_64
    drwxr-xr-x. 12 root mysql 4096 7月 14 18:14 mysql-5.6.44-linux-glibc2.12-x86_64
    -rw-r--r--. 1 root root 329105487 6月 9 21:55 mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
    drwxr-xr-x. 9 root root 4096 7月 17 21:46 mysql-5.7.26-linux-glibc2.12-x86_64
    -rw-r--r--. 1 root root 644869837 5月 19 22:59 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
    drwxr-xr-x. 5 root root 4096 7月 9 06:03 share
    drwxr-xr-x. 2 root root 4096 9月 23 2011 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 4
    Server version: 5.7.26-log MySQL Community Server (GPL)
     
    Copyright (c) 2000, 2019, 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 = 3306
    port = 3306
    user = mysql
    datadir = /mysql/data/3306/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/3306/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/3306/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、做好相应的回退方案

  • 相关阅读:
    a-b(高精度)
    a+b(高精度)[陈涛]——c语言
    |-病毒集锦-|(!长期更新!)
    2016/7/7 二分警察(搜查)~#递归打法好!
    2016/7/7 自定义函数copy
    2015/7/6 (!长期更新!)C语言从零——张呵呵
    2016/7/6 高精准计算器-减(神·高精准)
    2016/7/6 神·CPU的人类极限在哪?
    2016/7/6 真·高精度计算器-加 (火速跟完!!!)
    2016/7/6 准·高精度计算器-加
  • 原文地址:https://www.cnblogs.com/gered/p/11309861.html
Copyright © 2011-2022 走看看