Mysql原有环境部署多个版本
一.环境准备
原先已经有一个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原有环境部署多个版本的更多相关文章
- ProxySQL Cluster 高可用集群 + MySQL MGR环境部署 (多写模式) 部署记录
文章转载自:https://blog.51cto.com/u_6215974/4937192 ProxySQL 在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数 ...
- Mysql读写分离方案-MySQL Proxy环境部署记录
Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...
- MySQL运行环境部署规范
一:系统安装规范 1.关闭CPU节能,设定最大性能模式. 2.关闭NUMA(主要是为了避免swap).C-states.C1E. 3.阵列卡策略使用FORCE WB,关闭预读. 4.机械盘时,所有盘组 ...
- MySQL高可用架构-MHA环境部署记录
一.MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司) ...
- Docker容器学习梳理 - 应用程序容器环境部署
关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...
- MySQL复制环境(主从/主主)部署总结性梳理
Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...
- 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的
在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...
- MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)
MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与 ...
- MySQL主从及主主环境部署
主从同步 主机环境 mysql的安装可以参考:https://www.cnblogs.com/brianzhu/p/8575243.htmlCentos7版本master:192.168.192.12 ...
随机推荐
- Spark面试题(五)——数据倾斜调优
1.数据倾斜 数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈. 数据倾斜俩大直 ...
- [loj6271]生成树求和
将每一位拆开考虑,即不妨假设$0\le c<3$ 考虑矩阵树定理,即统计所有生成树边权乘积的和,但我们这里要将边权相加,很明显将其作为幂次(如果作为$cx+1$无法对3取模) 更具体的,也就是将 ...
- [noi707]LP
(以下用$Sa=\sum_{j=1}^{i}xi\cdot ai$,Sb和Sc同理)令f[i][x]表示前i个数,$Sa\le x\le Sb$时最小的Sc考虑第i个数是否选择,可以得到递推式$f[i ...
- [loj2136]地震后的幻想乡
考虑kruskal的过程:对$n$条边随机排列(排序),令$k$表示前$k$条边恰好能使图联通,根据题目的提示,即$E(\frac{k}{m+1})=\frac{E(k)}{m+1}$ 设$p(k)$ ...
- 抽象类和接口的区别详解、package和import
1.抽象类和接口以及抽象类和接口的区别. 1.1.抽象类的基础语法(见昨天笔记) 1.2.接口的基础语法 1.接口是一种"引用数据类型". 2.接口是完全抽象的. 3.接口怎么定义 ...
- restTemplate的问题-feign的项目
restTemplate的问题 1.场景描述 在使用feign的项目中,偶然的使用到了restTemplate 在普通方法调用是可以访问的,一旦使用了restTemplate,出现报错 比如: 百度 ...
- idea Error: java: OutOfMemoryError: insufficient memory 的处理
idea Error: java: OutOfMemoryError: insufficient memory处理 在更新项目代码或者运行项目时报错 OutOfMemoryError: insuffi ...
- 开源一个简单的react-native 菜单栏抽屉组件,带缩放效果
效果如图所示,源码地址:https://github.com/pofabs/PoSideMenu
- Codeforces 1466G - Song of the Sirens(哈希)
Codeforces 题面传送门 & 洛谷题面传送门 事实证明,有的难度评分不算很高.涉及的知识点不算很难的题目也能出得非常神仙 首先考虑如何暴力求答案.注意到一个文本串 \(T\) 在 \( ...
- Swift-技巧(十) Protocol 的灵活使用
摘要 Protocol 是 Swift 中实现面向协议编程思想的重要部分.在使用过程中有遇到协议中声明的部分,但是在遵守部分不需要实现的,那么就需要使用 extension 参与进来,让 Protoc ...