当前位置: 首页 > news >正文

CentOS7安装部署双版本MySQL

文章目录

  • CentOS7安装部署双版本MySQL
  • 一、前言
    • 1.场景
    • 2.环境
  • 二、安装MySQL 5.6
  • 三、安装MySQL 8.0
    • 1. 解压并移动 MySQL 文件
    • 2. 创建并配置 my.cnf
    • 3.修改mysql.server
    • 4. 添加用户组和用户
    • 5. 初始化 MySQL 数据目录
    • 6. 创建systemd服务文件
    • 7.创建符号链接
    • 8.首次登录
    • 9.允许所有主机连接
    • 10.常用命令

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.csdn.net/u011424614/article/details/132418916

CentOS7部署MySQL80集群:https://blog.csdn.net/u011424614/article/details/133222091

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

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

二、安装MySQL 5.6

  • 安装参考:《ContOS7安装部署MySQL56》
  • 安装文件:rpm 安装包
  • 目录:
  1. 数据库文件目录,例如表结构和数据:/var/lib/mysql
  2. 配置文件目录:/usr/share/mysql/
  3. 相关命令目录:/usr/bin

三、安装MySQL 8.0

1. 解压并移动 MySQL 文件

  • 下载压缩包:https://downloads.mysql.com/archives/community/
# 解压压缩包到指定目录
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=1gtid_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
客户端登录

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大语言模型测评工具-ChatHub和ChatAll
  • SLAM(Simultaneous Localization and Mapping)算法
  • 基于golang的文章信息抓取
  • React中的useMemo和memo
  • ESP32CAM物联网教学02
  • PLC电源模块
  • 关于Spring容器的一些理解:如何将类交给Spring容器管理,Spring容器如何实现将类进行自动注册
  • CentOS 7 arm64架构制作openssl 1.1.1w 二进制rpm包——筑梦之路
  • AI大模型的智能心脏:向量数据库的崛起
  • MySQL SQL查询执行顺序解析
  • 程序员学长 | 快速学会一个算法,xLSTM
  • 区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞
  • 【postgresql】 基础知识学习
  • iOS开发-Xcode
  • BP神经网络与反向传播算法在深度学习中的应用
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【Amaple教程】5. 插件
  • CAP 一致性协议及应用解析
  • CSS实用技巧干货
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • MySQL数据库运维之数据恢复
  • mysql外键的使用
  • PHP 的 SAPI 是个什么东西
  • React-redux的原理以及使用
  • React组件设计模式(一)
  • vuex 学习笔记 01
  • 前端面试之闭包
  • 网络应用优化——时延与带宽
  • 新版博客前端前瞻
  • 一天一个设计模式之JS实现——适配器模式
  • 鱼骨图 - 如何绘制?
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • $.ajax()参数及用法
  • (003)SlickEdit Unity的补全
  • (1)bark-ml
  • (1)svelte 教程:hello world
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十二)Flink Table API
  • (四) 虚拟摄像头vivi体验
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .ai域名是什么后缀?
  • .NET Core Web APi类库如何内嵌运行?
  • .Net Core 中间件验签
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • /3GB和/USERVA开关
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @取消转义
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)