脚本宝典收集整理的这篇文章主要介绍了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
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
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
启动全部实例:/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,请注明来意。