一.环境准备

原先已经有一个5.6版本的数据库在运行了,当前操作是完全不影响原数据库的。

警告:如果原先的数据库是yum安装的,照着如下可能会出错。做过一次实验,导致2个数据库都变成了高版本的那个数据库,类似升级了。

系统:centos7.3一台

软件版本:mysql-5.7.21

部署目录:/usr/local/

数据目录:/data

1.安装依赖

yum -y install autoconf libaio bison ncurses-devel

2.创建用户

groupadd mysql

useradd -g mysql -s /sbin/nologin mysql

二.下载安装包

1.下载官方二进制包,并放到/usr/local下面

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

tar -xf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql-5.7

2.创建数据目录,存储数据,socket,pid,log。如果有需求,可以后面自定义,不用都放一起

mkdir -p /data/seven

3.添加mysql权限

chown -R mysql:mysql /data /usr/local/mysql-5.7

三.Mysql-5.7单独部署

1.修改配置文件,先单独部署5.7。当前已经运行了一个数据库,那将/etc/my.cfn原有配置拷贝的一旁,等后面再用。

cp -p /etc/my.cnf /tmp/my.cnf.bak

原原来的删除,先将5.7初始化再说

vim /etc/my.cnf

[mysqld_safe]
nice = 0
pid-file = /data/seven/mysqld.pid [mysqld]
bind-address = 0.0.0.0
user = mysql
basedir = /usr/local/mysql-5.7
datadir = /data/seven
socket = /data/seven/mysql.sock
port = 3307
log-error = /data/seven/mysql.log

2.初始化

/usr/local/mysql-5.7/bin/mysqld --initialize --user=mysql --datadir=/data/seven --basedir=/usr/local/mysql-5.7

没有任何输出就是成功了

四.启动Mysql-5.7

这里将原有的5.6和新的5.7都纳入multi的管理

1.添加多版本控制

vim /etc/my.cnf

[mysql] #客户端
default-character-set=utf8mb4 [mysqld_multi]
#填写任意一个版本的位置就行
mysqld = /usr/local/mysql-5.6/bin/mysqld_safe
mysqladmin = /usr/local/mysql-5.6/bin/mysqladmin
#multi的日志
log = /tmp/mysql_multi.log
user = multi #在每个账号设置一个账户,有管理权限的,让multi可以控制数据库的关闭重启
password = multiadmin #3306这个是原有的配置,这里整个拷贝过来即可
[mysqld3306]
port = 3306
socket=/usr/local/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connection=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
log-error=/var/log/mysql/mysql.log
pid-file=/var/log/mysql/mysql.pid
bind-address = 0.0.0.0 #3307的,多加了一个pid-file。
[mysqld3307]
#跳过密码,因为5.7密码写到日志里了,但这里没看到
skip-grant-tables
bind-address = 0.0.0.0
user = mysql
basedir = /usr/local/mysql-5.7
datadir = /data/seven
socket = /data/seven/mysql.sock
port = 3307
log-error = /data/seven/mysql.log
pid-file = /data/seven/mysqld.pid

2.使用multi,这是一个管理的bash脚本,将他复制过来

cp /usr/local/mysql-5.7/support-files/mysqld_multi.server /etc/init.d/

chmod +x /etc/init.d/mysqld_multi.server

要修改一下脚本,默认目录不符合当前的配置

vim /etc/init.d/mysqld_multi.server

basedir=/usr/local/mysql-5.6
bindir=/usr/local/mysql-5.6/bin

3.使用

查看配置的3006和3307是否识别到了

/etc/init.d/mysqld_multi.server report

这里可以看到3306是已经启动的

启动单独的3307端口

/etc/init.d/mysqld_multi.server start 3307

已经启动了

验证

netstat -unltp | grep :3306

netstat -unltp | grep :3307

连接

mysql -S /data/seven/mysql.sock

也可以用ip+端口的方式连接,如果用socket连接,那端口和ip就没意义了。使用的将是本地登陆

mysql -uroot -P3307 -h127.0.0.1

连接修改,这里要和上面不同,5.7版本有点小差别

mysql -uroot -P3307 --socket=/data/seven/mysql.sock

mysql> use mysql;

mysql> UPDATE user SET authentication_string=PASSWORD("123456") WHERE user='root';

五.muliti使用

启动全部实例:/usr/local/mysql/bin/mysqld_multi start

查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report

启动单个实例:/usr/local/mysql/bin/mysqld_multi start 3306

停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 3306

查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 3306

Mysql原有环境部署多个版本的更多相关文章

  1. ProxySQL Cluster 高可用集群 + MySQL MGR环境部署 (多写模式) 部署记录

    文章转载自:https://blog.51cto.com/u_6215974/4937192 ProxySQL 在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数 ...

  2. Mysql读写分离方案-MySQL Proxy环境部署记录

    Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...

  3. MySQL运行环境部署规范

    一:系统安装规范 1.关闭CPU节能,设定最大性能模式. 2.关闭NUMA(主要是为了避免swap).C-states.C1E. 3.阵列卡策略使用FORCE WB,关闭预读. 4.机械盘时,所有盘组 ...

  4. MySQL高可用架构-MHA环境部署记录

    一.MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司) ...

  5. Docker容器学习梳理 - 应用程序容器环境部署

    关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...

  6. MySQL复制环境(主从/主主)部署总结性梳理

    Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...

  7. 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  8. MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)

    MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与 ...

  9. MySQL主从及主主环境部署

    主从同步 主机环境 mysql的安装可以参考:https://www.cnblogs.com/brianzhu/p/8575243.htmlCentos7版本master:192.168.192.12 ...

随机推荐

  1. 大爽Python入门教程 0-3 安装Atom与配置Python环境

    大爽Python入门公开课教案 点击查看教程总目录 安装轻量级IDE--Atom 一 下载 下面步骤1,2中网络卡顿的朋友, 请直接查看步骤3来操作 1. 搜索官网 使用搜索引擎搜索Atom, 打开搜 ...

  2. SpringCloud升级之路2020.0.x版-36. 验证断路器正确性

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 上一节我们通过单元测试验证了线程隔离的正确性,这一节我们来验证我们断路器的正确性,主要包括 ...

  3. Centos8 Docker部署 .Net6 项目

    .Net6项目发布 1.在VS中发布项目,并编写好Dockerfile文件 Dockerfile文件内容如下: FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS ...

  4. 【从头到脚品读 Linux 0.11 源码】第一回 最开始的两行代码

    从这一篇开始,您就将跟着我一起进入这操作系统的梦幻之旅! 别担心,每一章的内容会非常的少,而且你也不要抱着很大的负担去学习,只需要像读小说一样,跟着我一章一章读下去就好. 话不多说,直奔主题.当你按下 ...

  5. 一文了解Docker基本概念

    一.何为Docker Docker 是一个用于开发.交付和运行应用程序的开放平台,Docker 使您能够将应用程序与基础环境分开,以便您可以快速交付软件.借用百度百科的话来说,Docker 是一个开源 ...

  6. [bzoj5416]冒泡排序

    结论:一个序列是好序列当且仅当其不存在长度为3的下降子序列 证明:考虑提示,一个长度为3的下降子序列必然会交换三次, 而这三次带来的收益实际上只有2,因此不合法 同时还可以得到:第i个数,要么是前缀最 ...

  7. 单&双&单|双||的区别

    System.out.println(true|true);//true System.out.println(true|false);//true System.out.println(false| ...

  8. Python之用型号构成一个三角形代码

    #coding=utf-8 #******直角三角形*********** #左下角三角形 for i in range(1,6):     print '*'*i print "=&quo ...

  9. 8.2 k8s 基于StatefulSet运行mysql 一主多从 ,数据通过pv/pvc结合NFS服务器持久化

    1.准备mysql和xtrabackup镜像 下载mysql官方镜像并上传到本地harbor docker pull mysql:5.7 docker tag m ysql:5.7 192.168.1 ...

  10. Codeforces 809C - Find a car(找性质)

    Codeforces 题目传送门 & 洛谷题目传送门 首先拿到这类题第一步肯定要分析题目给出的矩阵有什么性质.稍微打个表即可发现题目要求的矩形是一个分形.形式化地说,该矩形可以通过以下方式生成 ...