CentOS7.7下二进制部署MySQL多版本多实例实战
第一章 需求说明
- 部署
MySQL
5.7的三个多实例环境(端口分别为3307,3308,3309) - 部署
MySQL
5.6和8.0版本数据库实例((端口分别为3316和3326)
第二章 环境准备
1.虚拟机环境
$ hostname -I
10.0.1.51
$ hostname
db01
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
2.虚拟机优化
# 关闭Selinux
$ setenforce 0
$ sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
# 关闭防火墙
$ systemctl stop firewalld
$ systemctl disable firewalld
$ iptables-save
# 更改yum源
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
# 添加epel源
$ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 更新yum缓存
$ yum clean all
$ yum makecache fast
# 停止NetworkManager
$ systemctl stop NetworkManager
$ systemctl disable NetworkManager
# 加大文件描述符
$ echo '* - nofile 65535' >>/etc/security/limits.conf
3.清理环境
①卸载已安装的mysql
$ rpm -qa | grep mysql
# 结果如下
mysql-community-common-8.0.18-1.el7.x86_64
mysql-community-client-8.0.18-1.el7.x86_64
mysql-community-libs-8.0.18-1.el7.x86_64
# 使用以下命令依次删除上面的程序
$ yum remove mysql-xxx-xxx-
②删除mysql的配置文件
$ find / -name mysql|xargs rm -fr
③删除MariaDB的文件
$ rpm -qa | grep mariadb
$ rpm -e mariadb-xxx --nodeps
④删除my.cnf
$ rm -fr /etc/my.cnf
⑤检查端口是否被占用
$ which mysql
$ pkill mysqld
$ netstat -lntup|egrep '3307|3308|3309|3316|3326'
4.准备软件包
MySQL官方下载地址
下载二进制包略。
5.准备目录
$ rm -rf /data/*
# MySQL安装目录
$ mkdir -p /data/app
# MySQL数据目录
$ mkdir -p /data/330{7,8,9}/data
$ mkdir -p /data/33{16,26}/data
# Scoket目录
$ mkdir -p /data/socket
第三章 部署MySQL5.7多实例
1.解压软件包并制作软连接
$ tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
$ ln -s /data/app/mysql-5.7.28 /data/app/mysql5728
2.创建MySQL
多实例配置
# 3307实例配置
$ cat > /data/3307/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5728
datadir=/data/3307/data
socket=/data/socket/mysql3307.sock
port=3307
server_id=7
EOF
# 3308实例配置
$ cat > /data/3308/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5728
datadir=/data/3308/data
socket=/data/socket/mysql3308.sock
port=3308
server_id=8
EOF
# 3309实例配置
$ cat > /data/3309/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5728
datadir=/data/3309/data
socket=/data/socket/mysql3309.sock
port=3309
server_id=9
EOF
3.创建MySQL
傀儡用户并授权
$ useradd -s /sbin/nologin -M mysql
$ id mysql
$ chown -R mysql.mysql /data
4.初始化
$ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3307/data
$ echo $?
$ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3308/data
$ echo $?
$ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3309/data
$ echo $?
5.编写systemd启动脚本
# 3307实例启动的服务脚本
$ cat > /etc/systemd/system/mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql5728/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF
# 3308实例启动的服务脚本
$ cat > /etc/systemd/system/mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql5728/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF
# 3309实例启动的服务脚本
$ cat > /etc/systemd/system/mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql5728/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
6.启动多实例
$ systemctl start mysqld3307
$ systemctl start mysqld3308
$ systemctl start mysqld3309
$ netstat -lntup|grep mysqld
tcp6 0 0 :::3307 :::* LISTEN 2093/mysqld
tcp6 0 0 :::3308 :::* LISTEN 2127/mysqld
tcp6 0 0 :::3309 :::* LISTEN 2161/mysqld
7.绝对路径登录MySQL
多实例
$ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3307.sock
$ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3308.sock
$ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3309.sock
第四章 部署MySQL5.6单实例
1.解压软件包并制作软连接
$ tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-5.6.46-linux-glibc2.12-x86_64 mysql-5.6.46
$ ln -s ln -s mysql-5.6.46 mysql5646
2.创建MySQL
实例配置
cat > /data/3316/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5646
datadir=/data/3316/data
socket=/data/socket/mysql3316.sock
port=3316
server_id=16
EOF
3.创建mysql傀儡用户并授权
$ chown -R mysql.mysql /data
4.初始化
$ /data/app/mysql5646/scripts/mysql_install_db --user=mysql --basedir=/data/app/mysql5646 --datadir=/data/3316/data
$ echo $?
5.编写systemd启动脚本
cat > /etc/systemd/system/mysqld3316.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql5646/bin/mysqld --defaults-file=/data/3316/my.cnf
LimitNOFILE = 5000
EOF
6.启动实例
$ systemctl daemon-reload
$ systemctl start mysqld3316.service
$ netstat -lntup|grep mysqld
tcp6 0 0 :::3316 :::* LISTEN 2516/mysqld
7.绝对路径登录MySQL
实例
$ /data/app/mysql5646/bin/mysql -S /data/socket/mysql3316.sock
第五章 部署MySQL8.0单实例
1.解压软件包并制作软连接
$ tar xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
$ mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql-8.0.18
$ ln -s mysql-8.0.18 mysql8018
2.创建MySQL
实例配置
cat > /data/3326/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql8018
datadir=/data/3326/data
socket=/data/socket/mysql3326.sock
port=3326
server_id=26
EOF
3.创建mysql傀儡用户并授权
$ chown -R mysql.mysql /data
4.安装依赖并初始化
$ yum install -y perl-DBD-MySQL perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
$ /data/app/mysql8018/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql8018 --datadir=/data/3326/data
$ echo $?
5.编写systemd启动脚本
cat > /etc/systemd/system/mysqld3326.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql8018/bin/mysqld --defaults-file=/data/3326/my.cnf
LimitNOFILE = 5000
EOF
6.启动实例
$ systemctl start mysqld3326.service
$ netstat -lntup|grep mysqld
tcp6 0 0 :::3326 :::* LISTEN 2686/mysqld
7.绝对路径登录MySQL
实例
$ /data/app/mysql8018/bin/mysql -S /data/socket/mysql3326.sock
至此,在同一台服务器上部署多版本MySQL多实例完成,可是使用一下命令验证:
[root@db01 ~]# netstat -lntup|grep mysqld
tcp6 0 0 :::3326 :::* LISTEN 2686/mysqld
tcp6 0 0 :::33060 :::* LISTEN 2686/mysqld
tcp6 0 0 :::3307 :::* LISTEN 2093/mysqld
tcp6 0 0 :::3308 :::* LISTEN 2127/mysqld
tcp6 0 0 :::3309 :::* LISTEN 2161/mysqld
tcp6 0 0 :::3316 :::* LISTEN 2516/mysqld
我的博客:https://www.pingface.com/2020/04/23/mysqlmulti.html
CentOS7.7下二进制部署MySQL多版本多实例实战的更多相关文章
- Linux Centos7.x下安装部署Jira和confluence以及破解方法详述
简述 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域. Confluence是一个专业的企业知识管 ...
- CentOS 7.x下安装部署MySQL 8.0实施手册
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一. Mysql8.0版本相比之前版本的一些特性 1) ...
- 使用openshit在ubuntu14.04下一键部署openstack(juno版本)
一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ...
- CentOS 6.5下二进制安装 MySQL 5.6
CentOS 6.5 二进制安装MySQL 5.6 1:查看系统版本 [root@10-4-5-9 mysql]# cat /etc/redhat-release CentOS release 6.5 ...
- Linux Centos7.x下安装部署VNC的实操详述
VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的.VNC 是在基于 UNIX和 Lin ...
- MySQL知识-MySQL不同版本多实例
一.不同版本多实例 0.软连接不同版本软件,修改环境变量 [root@db01 database]# ln -s mysql-5.6.46-linux-glibc2.12-x86_64 mysql ...
- CentOS7.4下安装部署HAProxy高可用群集
目录第一部分 实验环境第二部分 搭建配置web服务器第三部分 安装配置haproxy服务器第四部分 测试验证第五部分 haproxy配置相关详细解释 第一部分 实验环境1.一台harpoxy调度服务器 ...
- centos7环境下在线安装mysql
卸载mariadb centos默认安装了mariadb,因此,在安装mysql之前,需要卸载系统中安装的mariadb. 查看系统中所有已安装的mariadb包.命令:rpm -qa | grep ...
- centos7环境下ELK部署之elasticsearch
es部署:es只能用普通用户启动 博客园首发,转载请注明出处:https://www.cnblogs.com/tzxxh/p/9435318.html 一.环境准备: 安装jdk1.8.创建普通用户 ...
随机推荐
- 一文看懂NLP神经网络发展历史中最重要的8个里程碑!
导读:这篇文章中作者尝试将 15 年的自然语言处理技术发展史浓缩为 8 个高度相关的里程碑事件,不过它有些偏向于选择与当前比较流行的神经网络技术相关的方向.我们需要关注的是,本文中介绍的许多神经网络模 ...
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 基础篇
本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要争对C#初学者,巩固C#常用知识点: 中级篇主要争对WPF布局与美化, ...
- window的三种系统弹框介绍
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- Centos7 中打开和关闭防火墙及端口
1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...
- 4.Metasploit框架更新
Metasploit 进阶第二讲 框架更新 EDB平台-互联网安全漏洞库 Exploit_DB是一个面向全世界安全工作人员的漏洞提交平台,是一份公开已知漏洞的存档,便于企业改善公司的安全情况 ...
- B 【ZJOI2007】时态同步
时间限制 : - MS 空间限制 : 265536 KB 评测说明 : 1s 256m 问题描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 ...
- C 电压
时间限制 : 10000 MS 空间限制 : - KB 评测说明 : 1s,256m 问题描述 JOI社的某个实验室中有着复杂的电路.电路由n个节点和m根细长的电阻组成.节点被标号为1~N ...
- Blazor入门笔记(2)-分部类组件与组件的继承
1.前言 本文接自Blazor的组件(1)-从0构建一个组件 2.分部类组件 Razor组件你可理解为就是一个类名与文件名相同的类,因此,可以新建一个同名的partial类,将组件中@code里面的代 ...
- 使用Spring实例化Bean的方法以及Bean取别名
一.通过构造方法实例化Bean bean中加构造方法 public class Bean1 { public Bean1() { System.out.println("Bean1构造方法. ...
- 记一次Windb死锁排查
正在开会,突然线上站点线程数破千.然后一群人现场dump分析. 先看一眼线程运行状态 !eeversion 发现CPU占用并不高,19%,937条线程正在运行. 看看他们都在干什么. ~* e !cl ...