• linux mysql5.7升级到mysql8.0


    linux mysql5.7升级到mysql8.0

    操作步骤:
    1.首先对mysql5.7的表数据和结构做全量备份
    2.删除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的数据,其中log、datadir的路径在/etc/my.cnf中可以找到;
    3.安装数据库mysql8.0
    4.数据回导,把步骤一备份的数据导入新的数据库中。

    (1)升级前需要备份数据库

    mysql -e "show databases;" -uroot -p| grep -Ev "Database|information_schema|mysql|test|performance_schema|sys" | xargs mysqldump -uroot -p --databases > /home/kingstar/data-for-upgrade.sql
    # 此命令是将除information_schema|mysql|test|performance_schema|sys库之外的数据全部导出到/home/kingstar/data-for-upgrade.sql
    

    (2)删除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的数据
    依次执行:

    rpm -e --nodeps `rpm -qa | grep mysql` 
    rpm -e --nodeps `rpm -qa | grep MySQL`
    rpm -e --nodeps `rpm -qa | grep mariadb`
    

    log、datadir中的数据清除:
    其中log、datadir的路径在/etc/my.cnf中可以找到,log=/var/log/mysqld.log
    Datadir=/var/lib/MySQL
    首先查看目录是否有目标文件,然后执行以下三行:
    执行命令: echo > /var/log/mysqld.log
    执行命令: cd /var/lib/MySQL
    清空历史数据:rm -rf ./*
    (3)安装数据库mysql8.0
    解压安装包
    切换工作目录:
    cd /home/kingstar/program/software
    mkdir mysql
    解压
    tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar -C /home/kingstar/program/software/mysql
    cd mysql
    mysql用户初始化
    检查用户组是否存在:cat /etc/group | grep mysql
    创建mysql用户:
    sudo groupadd mysql
    sudo useradd -r -g mysql mysql
    -----r参数表示mysql用户是系统用户,不可用于登录系统

    服务安装
    执行 sudo rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm
    执行 sudo rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm
    执行 sudo rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm
    执行 sudo rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm
    注:如果安装 server RPM包报 libaio 错误时下载 http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.107-10.el7.x86_64.rpm
    执行 rpm -ivh libaio-0.3.107-10.el7.x86_64.rpm 进行安装后再执行
    服务启动
    首先需要修改配置文件:
    vi /etc/my.cnf
    新增内容:
    lower_case_table_names=1
    sql_mode='NO_ENGINE_SUBSTITUTION'
    max_connect_errors=1000
    执行启动命令:
    systemctl start mysqld.service
    检查:
    如果出现如下内容则表示启动成功

    初始化数据库:
    1.Mysql初始密码:执行 grep 'temporary password' /var/log/mysqld.log
    下图红框中的内容即为MySQL密码

    2.mysql -uroot -p 进入控制台(密码复制上图红框内容后,用复制输入)
    3.修改密码: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mysql2020!';(此处必须修改,必须用alert user)
    4.执行命令:update mysql.user set host = '%' where user = 'root';
    5.执行命令生效:flush privileges;
    6.退出mysql控制台:exit
    7.重启mysql 即可:
    systemctl restart mysqld.service

    (4)数据回导
    执行mysql -uroot -p 进入mysql控制台后使用 source /home/kingstar/data-for-upgrade.sql 导入即可

  • 相关阅读:
    (SenchaTouch+PhoneGap)开发笔记(2)开发环境搭建二
    Sql语句复习
    冒泡排序
    微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)
    Ext4 ComboBox组件使用
    ExtJs 进度条(轮询)
    如何替换掉.net toolStrip控件溢出按钮背景图
    easyui-menu 宽度自适应
    Python之入门学习
    servlet和filter的区别
  • 原文地址:https://www.cnblogs.com/We612/p/13793882.html
Copyright © 2020-2023  润新知