CentOS7安装部署双版本MySQL

CentOS7安装部署双版本MySQL

一、前言

1.场景

  • N年前服务器上安装了 MySQL 5.6,现在新项目需要升级到 MySQL 8.0;为了保证旧项目的稳定性,需要继续使用服务器上的 MySQL 5.6。同时,为了支持新项目,需要在服务器上安装 MySQL 8.0

2.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • MySQL 版本:mysql-8.0.34-linux-glibc2.17-x86_64.tar.gz

MySQL Product Archives:https://downloads.mysql.com/archives/community/

CentOS7安装部署MySQL80:https://blog.youkuaiyun.com/u011424614/article/details/132418916

CentOS7部署MySQL80集群:https://blog.youkuaiyun.com/u011424614/article/details/133222091

CentOS基础操作命令:https://blog.youkuaiyun.com/u011424614/article/details/94555916

[ContOS] MySQL安装部署:https://blog.youkuaiyun.com/u011424614/article/details/94555816

二、安装MySQL 5.6

  1. 数据库文件目录,例如表结构和数据:/var/lib/mysql
  2. 配置文件目录:/usr/share/mysql/
  3. 相关命令目录:/usr/bin

三、安装MySQL 8.0

1. 解压并移动 MySQL 文件

# 解压压缩包到指定目录
tar -xzf mysql-8.0.34-linux-glibc2.17-x86_64.tar.gz -C /usr/local/

# 修改目录名称
mv /usr/local/mysql-8.0.34-linux-glibc2.17-x86_64/ /usr/local/mysql80/

# 创建数据目录
cd /usr/local/mysql80/
mkdir data

2. 创建并配置 my.cnf

  • 配置 my.cnf
cat > /usr/local/mysql80/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql80/
datadir=/usr/local/mysql80/data/
port=3307
socket=/tmp/mysql80.sock
character-set-server=UTF8MB4
symbolic-links=0

# 开启 binlog
log-bin=/usr/local/mysql80/mysql-bin
server-id=1

gtid_mode=on
enforce_gtid_consistency=on

# 最大连接数设置
max_connections=1000
# 大小写不敏感
lower_case_table_names=1

[mysqld_safe]
log-error=/usr/local/mysql80/data/error.log
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80
EOF
  • 设置权限
chmod 755 /usr/local/mysql80/my.cnf
  • 备用命令
# 查找系统上所有名为 my.cnf 的文件
find / -name 'my.cnf'

# 查看 MySQL 默认的配置文件路径
mysqld --verbose --help | grep -A 1 "Default options"

3.修改mysql.server

  • 修改 mysql.server
vim /usr/local/mysql80/support-files/mysql.server

修改内容:

# 填写目录
basedir=/usr/local/mysql80
datadir=/usr/local/mysql80/data

# 加上80
lock_file_path="$lockdir/mysql80"

# 填写 pid 目录
mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid

# 填写 my.cnf 目录
conf=/usr/local/mysql80/my.cnf

4. 添加用户组和用户

# 添加用户组和用户
groupadd mysql
useradd mysql -g mysql

# 目录授权
chown -R mysql:mysql /usr/local/mysql80/

5. 初始化 MySQL 数据目录

  • 注意:lower_case_table_names=1 表示表名和数据库名在存储时转换为小写,但在比较时不区分大小写;这个配置需在初始化时加上,否则在 my.cnf 中配置后,mysql 无法正常启动
cd /usr/local/mysql80/bin

# 初始化
mysqld --defaults-file=/usr/local/mysql80/my.cnf --lower_case_table_names=1 --user=mysql --initialize

输出密码:cNp0g1/<<Kda

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: cNp0g1/<<Kda

6. 创建systemd服务文件

  • 配置 mysql80.service
cat > /etc/systemd/system/mysql80.service <<EOF
[Unit]
Description=MySQL Server 8.0
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/mysql80/support-files/mysql.server start
ExecStop=/usr/local/mysql80/support-files/mysql.server stop
ExecReload=/usr/local/mysql80/support-files/mysql.server restart
User=mysql
Group=mysql
PIDFile=/usr/local/mysql80/data/mysqld.pid
LimitNOFILE=5000

[Install]
WantedBy=multi-user.target
EOF
  • 重新加载 systemd 配置
systemctl daemon-reload
  • 设置 MySQL 服务开机自启动
systemctl enable mysql80
  • 启动 MySQL 服务
systemctl start mysql80
  • 验证 MySQL 服务状态
systemctl status mysql80

7.创建符号链接

  • 创建符号链接,实现使用 mysql80 运行 MySQL 8.0 的客户端工具
# 创建符号链接
ln -s /usr/local/mysql80/bin/mysql /usr/bin/mysql80

# 验证效果,查询 mysql 版本
mysql80 -V

8.首次登录

  • 登录
# 输入在【5. 初始化 MySQL 数据目录】时,输出的密码
mysql80 -uroot -p -S/tmp/mysql80.sock
  • 修改密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';

9.允许所有主机连接

  • (MySQL 客户端中执行)
use mysql;

#-- 查询 Host 值
SELECT User, Host FROM mysql.user WHERE User = 'root';

#-- Host 修改为 %
update user set host='%' where user='root' and host='localhost';

#-- 刷新权限
flush privileges;

10.常用命令

功能命令
systemctl start mysqld80启动服务
systemctl enable mysqld80开机自启动
systemctl status mysqld80服务状态
systemctl restart mysqld80重启服务
systemctl stop mysqld80停止服务
mysql80 -uroot -p
mysql80 -uroot -p -S/tmp/mysql80.sock
客户端登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趴着喝可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值