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 ...
随机推荐
- 详解电子表格中的json数据:序列化与反序列化
从XML到JSON 当下应用开发常见的B/S架构之下,我们会遇到很多需要进行前后端数据传输的场景.而在这个传输的过程中,数据通过何种格式传输.方式是否迅速便捷.书写方式是否简单易学,都成为了程序员在开 ...
- [atARC112F]Die Siedler
1和2操作是独立的,换言之一定可以先执行1操作选择包裹,再执行2操作使得$0\le c_{i}<2i$ 对于$c_{i}$,将其看作一个进制转换,并以$c_{i}$为从低到高的第$i$位,系数即 ...
- [loj3463]表达式求值
类似cf582E,先建出表达式树,然后树形dp+离散+min和max卷积的优化,复杂度为$o(nm|E|)$,无法通过 考虑我们仅关心于这$n$个数的大小关系,具体来说,假设给出的数组是$a_{i,j ...
- [loj6500]操作
差分,令$b_{i}=a_{i-1}\oplus a_{i}$,对于一个区间$[l,r]$,相当于令$a_{l-1}=a_{r+1}=0$之后求出$b_{l..r+1}$,对区间$[i-k,i)$异或 ...
- 第一章 初始C语言
第一章 初始C语言 目录 第一章 初始C语言 1. C语言起源 2. 选择C语言的理由 2.1 设计特性 2.2 高效性 2.3 可移植性 2.4 强大而灵活 2.5 面向程序员 3. C语言的应用范 ...
- 【Vue.js】SPA
SPA 2019-11-13 23:20:48 by冲冲 1.概念 (1)MPA(multi-page application) 特点:每一次页面跳转的时候,后台服务器都会返回一个新的html文档 ...
- 唯一id生成器
public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1");//id自增 Long ...
- Revit二次开发之获取本机已安装的Revit版本与路径
在revit安装目录下找到 RevitAddInUtility.dll 在项目中引用 使用以下方法 using Autodesk.RevitAddIns; /// <summary> // ...
- OI省选算法汇总及学习计划(转)
1.1 基本数据结构 数组(√) 链表(√),双向链表(√) 队列(√),单调队列(√),双端队列(√) 栈(√),单调栈(√) 1.2 中级数据结构 堆(√) 并查集与带权并查集(√) hash 表 ...
- jmeter非GUI(cmd命令行)模式的压测和输出测试报告
1.非GUI模式的压测,和GUI有啥不同? 2.非GUI模式怎么搞? 大家打开jmeter的时候,都会看到这个界面: 注意看这句话: Don't use GUI mode for load testi ...