一.环境准备

系统:centos7.3一台

软件版本:mysql-5.6.39/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

3.清理centos7 默认自带数据库

yum -y remove mariadb mariadb-server

二.下载安装包

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

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

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

mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql-5.6

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/six

mkdir -p /data/seven

3.添加mysql权限

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

三.Mysql-5.6单独部署

1.修改配置文件,先单独部署5.6

vim /etc/my.cnf

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

2.初始化,经过多次研究,发现默认初始化命令是加载/etc/my.cnf

/usr/local/mysql-5.6/bin/mysqld --initialize --datadir=/data/six --basedir=/usr/local/mysql-5.6

显示没有error即成功了

3.修改密码

启动

/usr/local/mysql-5.6/bin/mysqld_safe --datadir=/data/six &

查看是否启动了

netstat -unltp | grep :3306

连接修改密码,默认5.6版本是没有密码的

mysql -uroot -P3306 --socket=/data/six/mysql.sock

mysql> use mysql;

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

关闭mysql-5.6,因为mysql单独部署,第二个是起不来的。会显示mysqld_safe已经启动了。

pkill mysqld

配置环境变量,用哪一个版本的这些命令都可以

vim /etc/profile

PATH=$PATH:/usr/local/mysql-5.6/bin

四.Mysql-5.7单独部署

1.修改配置文件,先单独部署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

没有任何输出就是成功了

3.修改密码

这里先跳过密码,5.7应该是日志里有密码,但我没找到。这里在[mysqld]下添加

vim /etc/my.cnf

[mysqld]
skip-grant-tables

启动

/usr/local/mysql-5.6/bin/mysqld_safe --datadir=/data/seven &

查看是否启动了

netstat -unltp | grep :3307

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

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

mysql> use mysql;

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

关闭mysql-5.7

pkill mysqld

五.添加到多版本控制

以上呢,只能单独启动,启动第二个是不行的。因为mysql都是mysqld_safe来启动管理的,但它只支持一个。所以需要ntsqkd_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 #和以前的一样,只是将pid-file写到这里了
[mysqld3306]
skip-grant-tables
bind-address = 0.0.0.0
user = mysql
basedir = /usr/local/mysql-5.6
datadir = /data/six
socket = /data/six/mysql.sock
port = 3306
log-error = /data/six/mysql.log
pid-file = /data/six/mysqld.pid [mysqld3307]
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.6/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

当前未启动

启动

/etc/init.d/mysqld_multi.server start

已经启动了

验证

netstat -unltp | grep :3306

netstat -unltp | grep :3307

连接

mysql -S /data/six/mysql.sock

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

mysql -uroot -P3306 -h127.0.0.1

六.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. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  2. 使用openshit在ubuntu14.04下一键部署openstack(juno版本)

    一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ...

  3. 2-MySQL DBA笔记-MySQL安装部署和入门

    第2章 MySQL安装部署和入门 第1章介绍了MySQL的一些基础知识,本章将为读者介绍MySQL的部署.安装及一些常用命令和参数的设置.2.1 如何选择MySQL版本 在选择MySQL的版本时,要根 ...

  4. 【转】Nginx+php-fpm+MySQL分离部署详解

    转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...

  5. MySQL 5 绿色版(BAT版本) mysql50green转自http://hi.baidu.com/dburu/blog/item/e753fcc4362458aa8226accb.htmlMySQL 5 绿色版(BAT版本) By )

    以前提供下载的那个 MySQL 绿色版是来自于 Web 开发工具箱之 Apache PHP MySQL 绿色套装版, 原作者是为了方便自己开发所做的一套整合了 Apache, PHP, MySQL 的 ...

  6. mysql的mvcc(多版本并发控制)

    mysql的mvcc(多版本并发控制) 我们知道,mysql的innodb采用的是行锁,而且采用了多版本并发控制来提高读操作的性能. 什么是多版本并发控制呢 ?其实就是在每一行记录的后面增加两个隐藏列 ...

  7. Mysql下Limit注入方法(此方法仅适用于5.0.0<mysql<5.6.6的版本)

    SQL语句类似下面这样:(此方法仅适用于5.0.0<mysql<5.6.6的版本) SELECT field FROM table WHERE id > 0 ORDER BY id ...

  8. MySQL主从复制部署

    前言 MySQL的主从复制是基于二进制日志机制的,需开启二进制日志功能.在具体的配置过程中,需注意主服务器与从服务器均配置唯一ID编号,且从服务器必须设置主服务器的主机名.日志文件名.文件位置等参数. ...

  9. win10环境下MySql(5.7.21版本)安装过程

    windows10上安装mysql(详细步骤) 2016年09月06日 08:09:34 阅读数:60405 环境:windwos 10(1511) 64bit.mysql 5.7.14 时间:201 ...

随机推荐

  1. vue中使用echarts,地图上的涟漪特效大小设置

    在使用echarts进行开发大屏时,使用到了地图这个组件 我们会根据返回的值来决定涟漪的大小 这时则使用 其它的value为返回的数组,一般格式为[经度,维度,值] 这样就能动态设置效果的大小了

  2. jvm的垃圾回收

    首先类加载的过程:加载验证准备解析初始化 类加载器: jvm内存模型图: 空着,等以后补上 jvm垃圾收集器 目前只知道,parnew,cms,g1 parnew新生代垃圾回收器,复制算法 cms复制 ...

  3. electron另一种运行方式

    编写helloword 全局安装软件  npm install -g electron 快速编写html  html:5 完整代码和流程: 1.index.html  <!DOCTYPE htm ...

  4. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  5. UOJ 75 - 【UR #6】智商锁(矩阵树定理+随机+meet-in-the-middle)

    题面传送门 一道很神的矩阵树定理+乱搞的题 %%%%%%%%%%%%%%% vfk yyds u1s1 这种题目我是根本想不出来/kk,大概也就 jgh 这样的随机化带师才能想到出来吧 首先看到生成树 ...

  6. Codeforces 1375F - Integer Game(交互)

    Codeforces 题面传送门 & 洛谷题面传送门 一个奇怪的做法. 首先我们猜测答案总是 First.考虑什么样的情况能够一步把对方一步干掉.方便起见我们假设 \(a<b<c\ ...

  7. Codeforces 1408I - Bitwise Magic(找性质+集合幂级数)

    Codeforces 题面传送门 & 洛谷题面传送门 Yet another immortal D1+D2 I %%%%%% 首先直接统计肯定是非常不容易的,不过注意到这个 \(k\) 非常小 ...

  8. 洛谷 P7116 - [NOIP2020] 微信步数(拉格朗日插值)

    洛谷题面传送门 我竟然独立切掉了这道题!incredible! 纪念我逝去的一上午(NOIP 总时长 4.5h,这题做了我整整 4.5h) 首先讲一下现场我想的 80 分的做法,虽然最后挂成了 65 ...

  9. BZOJ 4556 [HEOI2016/TJOI2016]字符串

    BZOJ 4556 [HEOI2016/TJOI2016]字符串 其实题解更多是用后缀数组+数据结构的做法,貌似也不好写. 反正才学了 sam 貌似比较简单的做法. 还是得先二分,然后倍增跳到 $ s ...

  10. 安装octave详解

    1. 一些可以替换的库(可跳过) 默认的库安装libblas.dll.OpenBLAS-v2.6.0-0-54e7b37_dynamicarch_nt4(自动检测CPU类型) 在目录下<your ...