Mysql从头部署多个版本
一.环境准备
系统: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从头部署多个版本的更多相关文章
- Ubuntu14.04 Django Mysql安装部署全过程
Ubuntu14.04 Django Mysql安装部署全过程 一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...
- 使用openshit在ubuntu14.04下一键部署openstack(juno版本)
一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ...
- 2-MySQL DBA笔记-MySQL安装部署和入门
第2章 MySQL安装部署和入门 第1章介绍了MySQL的一些基础知识,本章将为读者介绍MySQL的部署.安装及一些常用命令和参数的设置.2.1 如何选择MySQL版本 在选择MySQL的版本时,要根 ...
- 【转】Nginx+php-fpm+MySQL分离部署详解
转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...
- MySQL 5 绿色版(BAT版本) mysql50green转自http://hi.baidu.com/dburu/blog/item/e753fcc4362458aa8226accb.htmlMySQL 5 绿色版(BAT版本) By )
以前提供下载的那个 MySQL 绿色版是来自于 Web 开发工具箱之 Apache PHP MySQL 绿色套装版, 原作者是为了方便自己开发所做的一套整合了 Apache, PHP, MySQL 的 ...
- mysql的mvcc(多版本并发控制)
mysql的mvcc(多版本并发控制) 我们知道,mysql的innodb采用的是行锁,而且采用了多版本并发控制来提高读操作的性能. 什么是多版本并发控制呢 ?其实就是在每一行记录的后面增加两个隐藏列 ...
- 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 ...
- MySQL主从复制部署
前言 MySQL的主从复制是基于二进制日志机制的,需开启二进制日志功能.在具体的配置过程中,需注意主服务器与从服务器均配置唯一ID编号,且从服务器必须设置主服务器的主机名.日志文件名.文件位置等参数. ...
- win10环境下MySql(5.7.21版本)安装过程
windows10上安装mysql(详细步骤) 2016年09月06日 08:09:34 阅读数:60405 环境:windwos 10(1511) 64bit.mysql 5.7.14 时间:201 ...
随机推荐
- Django 小实例S1 简易学生选课管理系统 8 CSS样式优化
Django 小实例S1 简易学生选课管理系统 第8节--CSS样式优化 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 前面的几节下来,用户模块基 ...
- liunx基础知识点1:系统管理相关命令、目录操作命令、文本编辑、关闭防火墙、重启和关闭
Linux(一) liunx系统那么重要,作为一个测试人员,不掌握你就损失了好几千,为了这个钱,也为了面子,什么鬼?我爱膨胀.你看看这些知识喽.我整理的,可费工夫了. 下次给大家一个面试题啊,更直观
- 菜鸡的Java笔记 第二十二 - java 对象多态性
本次只是围绕着多态性的概念来进行讲解,但是所讲解的代码与实际的开发几乎没有关系,而且多态一定是在继承性的基础上才可以操作的, 而本次将使用类继承的关系来描述多态的性质,实际的开发中不会出 ...
- [luogu6838]网络站点
先分析答案,即$x$和$y$的关系有以下两种: 1.$y$在$x$子树中,那么答案即为包含$y$的$x$的儿子 2.$y$不在$x$子树中,那么答案即为$x$的父亲 那么第一个问题就是判断$y$是否在 ...
- rm命令弱爆了!
大家好,我是良许. 创建.删除和修改文件是用户在 Linux 系统中执行的非常常见操作.大家都知道,在 Linux 系统里使用 rm 命令删除单个文件时,几乎一瞬间就完成了.但是如果文件数量很大,那么 ...
- 使用 CSS 轻松实现一些高频出现的奇形怪状按钮
背景 在群里会有同学问相关的问题,怎么样使用 CSS 实现一个内切角按钮呢.怎么样实现一个带箭头的按钮呢? 本文基于一些高频出现在设计稿中的,使用 CSS 实现稍微有点难度和技巧性的按钮,讲解使用 C ...
- [省选联考 2021 A 卷] 矩阵游戏
很巧妙的一个构造. 我是没有想到的. 自己的思维能力可能还是不足. 考虑先满足\(b\)对\(a\)的限制,把\(a\)的第一行和第一列设\(0\),推出这个\(a\). 接下来考虑对这个\(a\), ...
- Codeforces 986D - Perfect Encoding(FFT+爪巴卡常题)
题面传送门 题意:给出 \(n\),构造出序列 \(b_1,b_2,\dots,b_m\) 使得 \(\prod\limits_{i=1}^mb_i\geq n\),求 \(\sum\limits_{ ...
- Codeforces 1270H - Number of Components(线段树)
Codeforces 题目传送门 & 洛谷题目传送门 首先需发现一个性质,那就是每一个连通块所对应的是一个区间.换句话说 \(\forall l<r\),若 \(l,r\) 在同一连通块 ...
- 【Perl】如何安装Bioperl模块?
目录 失败尝试一:使用cpanm 失败尝试二:使用CPAN 成功尝试:直接conda安装bioperl 没有尝试:源码安装bioperl 生信软件绕不过Perl,Perl绕不过Bioperl.而Bio ...