Mysql从头部署多个版本

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Mysql从头部署多个版本脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

目录
  • 一.环境准备
  • 二.下载安装包
  • 三.Mysql-5.6单独部署
  • 四.Mysql-5.7单独部署
  • 五.添加到多版本控制
  • 六.muliti使用

一.环境准备

系统: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

当前未启动

Mysql从头部署多个版本

启动 /etc/init.d/mysqld_multi.server start

已经启动了

Mysql从头部署多个版本

验证 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从头部署多个版本全部内容,希望文章能够帮你解决Mysql从头部署多个版本所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数据库