跳至主要內容

数据库


数据库

1.Linux系统安装Mysql客户端

1.卸载MariaDB

#查看版本:
rpm -qa|grep mariadb
#卸载:
rpm -e --nodeps 上一步骤查到的名称
#检查是否卸载干净:
rpm -qa|grep mariadb

2.安装MySQL

#解压安装包,根据操作系统版本选择解压的文件的,其中el7代表redhat/centos7.X系统,el8代表redhat/centos8.X系统
#以el7为例:
tar xf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
#安装,依次执行
rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm

2.Mysql版本升级

2.1 备份

可以采用多种方式备份数据,建议三种方式都操作一下:

方式1:定时备份

项目部署后要求配置数据定时备份,直接执行定时备份脚本即可,具体参考:数据库备份

方式2:导出Sql脚本

使用Sqlyog等mysql客户端工具,导出sql脚本(以Sqlyog为例):

img.png

方式3:直接复制数据目录

这种方式在升级出现问题时可以快速恢复。

#进入mysql的数据目录,一般为/hos/mysql/(根据实际环境修改),数据保存在data中
cp -rp data data-bak

2.2 升级

注意

本升级流程只适用于mysql8.0版本,且小版本不低于8.0.16的场景。

1.停止Mysql服务

systemctl stop mysqld

2.版本升级

#上传新版本到mysql服务器上,解压
tar xf mysql-8.0.X-1.el7.x86_64.rpm-bundle.tar
#安装,依次执行(安装文件名称根据实际情况修改)
rpm -Uvh mysql-community-common-8.0.X-1.el7.x86_64.rpm
rpm -Uvh mysql-community-client-plugins-8.0.X-1.el7.x86_64.rpm
rpm -Uvh mysql-community-libs-8.0.X-1.el7.x86_64.rpm
rpm -Uvh mysql-community-client-8.0.X-1.el7.x86_64.rpm
rpm -Uvh mysql-community-icu-data-files-8.0.X-1.el7.x86_64.rpm
rpm -Uvh mysql-community-server-8.0.X-1.el7.x86_64.rpm --nodeps

3.启动Mysql服务

systemctl start mysqld

启动时会进行版本检查和升级流程,可能需要较长时间,查看Mysql日志看是否有报错:/hos/mysql/data/mysql.log,最终提示类似以下内容时完成升级和启动:

[System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
[System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.34'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.```

2.3 恢复

如果升级出现问题,无法启动或者数据错误等,可以按照以下方式和流程进行恢复,恢复到旧版本:

恢复方式1:

1.停止服务

systemctl stop mysqld

2.重新安装原版本。

3.将升级前按照备份方式3备份的数据目录,换掉当前的data目录。

4.启动mysql服务

systemctl start mysqld

恢复方式2:

1.停止服务

systemctl stop mysqld

2.删除data目录

3.重新安装原版本,按照全新环境安装,配置、初始化并启动。

4.使用Sqlyog等客户端工具,将升级前按照备份方式1或2备份的sql脚本导入。