一、安装环境说明
-
安装环境:
安装升级 版本说明 安装包 MySQL 安装版本 mysql-5.7.42 mysql-5.7.42-rpm-bundle.tar MySQL 升级版本 mysql-5.7.44 mysql-5.7.44-rpm-bundle.tar -
安装说明:
- mysql 安装采用虚拟机的环境是CentOS7.9 版本进行。
- 本次安裝是在 Linux 环境基于 rpm 包安装 MySQL服务。
- mysql 基于 rpm 安装方式分为离线安装和在线安装两种。
-
安裝链接:
下载地址
:https://downloads.mysql.com/archives/community/安装版本
:mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar升级版本
:mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar操作软件
:https://mobaxterm.mobatek.net/download-home-edition.html
二、离线安装 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';