Linux安装升级MySQL服务

一、安装环境说明

  • 安装环境:

    安装升级版本说明安装包
    MySQL 安装版本mysql-5.7.42mysql-5.7.42-rpm-bundle.tar
    MySQL 升级版本mysql-5.7.44mysql-5.7.44-rpm-bundle.tar
  • 安装说明:

    • mysql 安装采用虚拟机的环境是CentOS7.9 版本进行。
    • 本次安裝是在 Linux 环境基于 rpm 包安装 MySQL服务。
    • mysql 基于 rpm 安装方式分为离线安装和在线安装两种。
  • 安裝链接:

在这里插入图片描述

二、离线安装 MySQL

  • 使用 Mobaxterm 上传安装包文件至虚拟机的 root 目录下

    在这里插入图片描述

  • 解压mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar 压缩包

    $ mkdir /root/mysql
    $ tar -xf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar -C /root/mysql
    $ cd /root/mysql
    

    在这里插入图片描述

  • 使用 rpm 包本地安装 mysql 服务

    # 忽略依赖, 强制安装
    $ rpm -ivh *.rpm --nodeps --force
    
    # 根据依赖关系顺序安装 (建议)
    $ rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-libs-compat-5.7.42-1.el7.x86_64.rpmm
    $ rpm -ivh mysql-community-devel-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-compat-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-devel-5.7.42-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-test-5.7.42-1.el7.x86_64.rpm
    
  • 启动 mysql 服务

    $ systemctl start mysqld.service
    $ systemctl status mysqld.service
    
  • 首次安装 mysql 登录验证

    $ cat /var/log/mysqld.log | grep -i password
    2023-12-31T08:56:59.886383Z 1 [Note] A temporary password is generated for root@localhost: !cwue-oor0+D
    
    $ mysql -uroot -p'!cwue-oor0+D'
    

    在这里插入图片描述

  • 修改 mysql 登录密码

    # 使用临时密码登录后,必须先重置密码:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123qqq...A';
    
    # 刷新权限
    flush privileges;
    # 刷新后退出使用新密码登录即可
    

三、在线安装 MySQL

  • 在线安装是基于 yum 进行安装,故在安装前需要配置 yum 源

    # 删除自带的repo文件
    $ rm -rf /etc/yum.repos.d/*.repo
    
    # 下载阿里镜像源
    $ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    
    $ yum clean all					# 清空本地软件包缓存
    $ yum makecache					# 更新本地软件包缓存
    
  • 解压mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar 压缩包

    $ mkdir /root/mysql
    $ tar -xf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar -C /root/mysql
    $ cd /root/mysql
    
  • 使用 yum 命令本地安装 mysql 的 rpm 包

    $ yum -y localinstall *.rpm			# yum安装可以自动解决包依赖关系
    
  • 启动 mysql 服务

    $ systemctl start mysqld.service
    $ systemctl status mysqld.service
    
  • 首次安装 mysql 登录验证

    $ cat /var/log/mysqld.log | grep -i password
    2023-12-31T08:56:59.886383Z 1 [Note] A temporary password is generated for root@localhost: !cwue-oor0+D
    
    $ mysql -uroot -p'!cwue-oor0+D'
    
  • 修改 mysql 登录密码

    # 使用临时密码登录后,必须先重置密码:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123qqq...A';
    
    # 刷新权限
    flush privileges;
    # 刷新后退出使用新密码登录即可
    

四、离线升级 MySQL

  • 使用 Mobaxterm 上传安装包文件至虚拟机的 root 目录下

    在这里插入图片描述

  • 解压 mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar 压缩包

    $ mkdir -p /root/mysql
    $ tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar -C /root/mysql
    
    $ cd /root/mysql/
    
    $ ls
    mysql-community-client-5.7.44-1.el7.x86_64.rpm
    mysql-community-common-5.7.44-1.el7.x86_64.rpm
    mysql-community-devel-5.7.44-1.el7.x86_64.rpm
    mysql-community-embedded-5.7.44-1.el7.x86_64.rpm
    mysql-community-embedded-compat-5.7.44-1.el7.x86_64.rpm
    mysql-community-embedded-devel-5.7.44-1.el7.x86_64.rpm
    mysql-community-libs-5.7.44-1.el7.x86_64.rpm
    mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
    mysql-community-server-5.7.44-1.el7.x86_64.rpm
    mysql-community-test-5.7.44-1.el7.x86_64.rpm
    
  • 注意事项:

    • 卸载前确保虚拟机之前安装的 mysql 是基于 rpm 包安装的。
    • 采用全量备份的方式对 mysql 数据进行备份,以防误删数据。
    • 查看 mysql 的配置文件 /etc/my.cnf 中修改了数据目录的存放位置。
  • 查看 mysql 原来的版本,备份配置文件,停止 mysql 服务

    # 查看已安装的mysql版本
    $ rpm -qa | grep mysql
    mysql-community-libs-5.7.42-1.el7.x86_64
    mysql-community-libs-compat-5.7.42-1.el7.x86_64
    mysql-community-client-5.7.42-1.el7.x86_64
    mysql-community-test-5.7.42-1.el7.x86_64
    mysql-community-common-5.7.42-1.el7.x86_64
    mysql-community-server-5.7.42-1.el7.x86_64
    mysql-community-embedded-devel-5.7.42-1.el7.x86_64
    mysql-community-embedded-5.7.42-1.el7.x86_64
    mysql-community-devel-5.7.42-1.el7.x86_64
    mysql-community-embedded-compat-5.7.42-1.el7.x86_64
    
    # 备份mysql的配置文件
    $ cp /etc/my.cnf /etc/my.cnf.bak
    
    # 停止mysql的服务
    $ systemctl stop mysqld.service
    
  • 开始卸载 mysql 服务,并确保卸载完成

    # 卸载原来的mysql服务
    $ rpm -qa | grep -i mysql | xargs rpm -ev --nodeps
    软件包准备中...
    mysql-community-embedded-devel-5.7.42-1.el7.x86_64
    mysql-community-devel-5.7.42-1.el7.x86_64
    mysql-community-embedded-5.7.42-1.el7.x86_64
    mysql-community-embedded-compat-5.7.42-1.el7.x86_64
    mysql-community-test-5.7.42-1.el7.x86_64
    mysql-community-server-5.7.42-1.el7.x86_64
    mysql-community-client-5.7.42-1.el7.x86_64
    mysql-community-libs-compat-5.7.42-1.el7.x86_64
    mysql-community-libs-5.7.42-1.el7.x86_64
    mysql-community-common-5.7.42-1.el7.x86_64
    
    # 确保mysql服务已完成删除
    $  rpm -qa | grep -i mysql
    
  • 安装新版本的 mysql 服务

    # 进入rpm包目录
    $ cd /root/mysql
    
    # 忽略依赖关系, 强制安装
    $ rpm -ivh *.rpm --nodeps --force
    
    # 根据依赖关系顺序安装 (建议)
    $ rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpmm
    $ rpm -ivh mysql-community-devel-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-compat-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-embedded-devel-5.7.44-1.el7.x86_64.rpm
    $ rpm -ivh mysql-community-test-5.7.44-1.el7.x86_64.rpm
    
    # 查看安装的mysql服务是否为新版本
    $ rpm -qa | grep -i mysql
    mysql-community-embedded-compat-5.7.44-1.el7.x86_64
    mysql-community-client-5.7.44-1.el7.x86_64
    mysql-community-common-5.7.44-1.el7.x86_64
    mysql-community-server-5.7.44-1.el7.x86_64
    mysql-community-test-5.7.44-1.el7.x86_64
    mysql-community-libs-5.7.44-1.el7.x86_64
    mysql-community-embedded-5.7.44-1.el7.x86_64
    mysql-community-devel-5.7.44-1.el7.x86_64
    mysql-community-embedded-devel-5.7.44-1.el7.x86_64
    
  • 恢复原有的配置文件,并启动服务

    $ mv /etc/my.cnf /etc/my.cnf.default
    $ mv /etc/my.cnf.bak /etc/my.cnf
    
    $ systemctl start mysqld.service
    $ systemctl status mysqld.service
    
  • 登录测试是否能够正常登录

    $ mysql -uroot -p'123qqq...A'
    

    在这里插入图片描述

五、修改MySQL数据目录

  • 停止mysql服务

    $ systemctl stop mysqld
    $ systemctl status mysqld
    
  • 迁移mysql默认数据目录, 迁移到指定目录, 以/data目录为例

    $ cp -R /var/lib/mysql /data
    
  • 修改迁移后的目录的权限和所属

    $ chown -R mysql:mysql /data/mysql/
    
  • 修改mysql配置文件, 修改数据存储位置和mysql套接字连接文件存储位置

    $ vim /etc/my.cnf
    ...
    [mysqld]
    # datadir=/var/lib/mysql
    # socket=/var/lib/mysql/mysql.sock
    datadir=/data/mysql
    socket=/data/mysql/mysql.sock
    
    [client]
    default-character-set=utf8
    socket=/data/mysql/mysql.sock
    
    [mysql]
    default-character-set=utf8
    socket=/data/mysql/mysql.sock
    ...
    

    注意: 将sock路径添加到client与mysql下, 否则无法连接到数据库, 报错信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

  • 重启mysql数据库服务

    $ systemctl restart mysqld
    $ systemctl status mysqld
    
  • 测试登录数据库功能

    $ mysql -uroot -p'123qqq...A'
    
  • 查看配置文件是否生效可以查看配置文件中某个参数是否一样

    SHOW VARIABLES LIKE 'max_connections';
    
  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以根据您当前使用的mysql中间件类型来进行升级,以下是一些常见的mysql中间件类型的升级方法: 1. HAProxy:如果您正在使用HAProxy作为mysql中间件,可以按照以下步骤进行升级: - 停止旧版本的HAProxy服务:`sudo systemctl stop haproxy`。 - 确认您需要升级的HAProxy版本,并前往官网下载对应版本的源码包。 - 解压源码包:`tar zxvf haproxy-xxx.tar.gz`。 - 进入解压后的目录:`cd haproxy-xxx`。 - 执行以下命令,进行编译和安装: ``` make TARGET=linux-glibc sudo make install ``` - 安装完成后,启动新版本的HAProxy服务:`sudo systemctl start haproxy`。 - 确认新版本的HAProxy服务已经成功启动:`sudo systemctl status haproxy`。 2. MaxScale:如果您正在使用MaxScale作为mysql中间件,可以按照以下步骤进行升级: - 停止旧版本的MaxScale服务:`sudo systemctl stop maxscale`。 - 确认您需要升级的MaxScale版本,并前往官网下载对应版本的安装包。 - 执行以下命令,进行安装: ``` sudo rpm -Uvh maxscale-x.x.x.x.x86_64.rpm ``` - 安装完成后,启动新版本的MaxScale服务:`sudo systemctl start maxscale`。 - 确认新版本的MaxScale服务已经成功启动:`sudo systemctl status maxscale`。 需要注意的是,升级mysql中间件可能会引起一些配置文件的变化,因此在升级之前,建议备份原有的mysql中间件配置文件,以便在需要时进行恢复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值