linux下同时部署两个版本的mysql数据库

 

首先采用yum的方式 安装了一个5.1.69的版本,运行正常

重点是在部署了一个mysql5.1.69的情况下,再部署另外一个版本的mysql 5.7.30.

 

  • 下载安装包到指定目录,并解压:

下载地址:http://downloads.mysql.com/archives/community/

选择Linux - Generic 以及对应的 mysql版本,我这次安装的是 mysql 5.7.30版本

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.30-linux-glibc2.12-i686.tar --no-check-certificate

tar -xvf mysql-5.7.30-linux-glibc2.12-i686.tar

=>mysql-5.7.30-linux-glibc2.12-i686.tar.gz

gunzip mysql-5.7.30-linux-glibc2.12-i686.tar.gz

=>mysql-5.7.30-linux-glibc2.12-i686
  • 安装配置步骤:

 创建用户及目录(用户一般在安装第一个版本的时候就自动创建了,可以忽略)

groupadd mysql           
useradd -g mysql mysql

cd /usr/local

#/usr/local/mysql5.7
mkdir mysql5.7
chown mysql:mysql mysql5.7
chmod 755 mysql5.7/

#/usr/local/data/mysql5.7
mkdir data
cd data  
mkdir mysql5.7
chown mysql:mysql mysql5.7
chmod 755 mysql5.7/

拷贝数据

cp -fr mysql-5.7.30-linux-glibc2.12-i686/* /usr/local/mysql5.7
  • 安装

安装之前 首先将原有版本的mysql配置文件(一般默认是/etc/my.cnf)重命名,否则新版本初始化会自动去加载这个配置

mv /etc/my.cnf /etc/my.cnf.bak

执行初始化安装:

cd /usr/local/mysql5.7/bin

#--initialize-insecure 是不自动生成密码,第一次登陆的时候才输入设置密码
./mysqld  --initialize-insecure --basedir=/usr/local/mysql5.7 --datadir=/usr/local/data/mysql5.7

在/usr/local/mysql5.7下创建my.cnf文件 并配置如下:

# The following options will be passed to all MySQL clients
[client]
port        = 3308
socket      = /usr/local/data/mysql5.7/mysql.sock
[mysqld]
port        = 3308
socket      = /usr/local/data/mysql5.7/mysql.sock
basedir     = /usr/local/mysql5.7
datadir     = /usr/local/data/mysql5.7
server-id   = 2 
#加载密码校验插件
plugin-load-add=validate_password.so
#密码校验设置
validate_password_policy = 1
validate_password_length = 8
[mysqld_safe]
log-error = /usr/local/mysql5.7/mysqld.log
pid-file  = /usr/local/data/mysql5.7/mysql57.pid

 用root权限启动新版本,加载我们指定的配置文件:

#root权限启动新版本 
/usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/usr/local/mysql5.7/my.cnf --user=mysql &

 此时执行ps -ef|grep mysql可以看到两个版本的mysql同时运行中,一个是默认的3306端口,另一个是我们新部署的3308,至此,第二版本的mysql5.7.30部署完成

[public@informix-demo data]$ ps -ef|grep mysql
root      1422     1  0  2018 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/informix-demo.pid
mysql     1622  1422  0  2018 ?        02:27:26 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --log-error=/usr/local/mysql/var/informix-demo.err --pid-file=/usr/local/mysql/var/informix-demo.pid --socket=/tmp/mysql.sock --port=3306
root      3471 26163  0 Jul27 pts/39   00:00:00 /bin/sh /usr/local/mysql5.7/bin/mysqld_safe --defaults-file=./my.cnf --user=mysql
mysql     3918  3471  0 Jul27 pts/39   00:02:13 /usr/local/mysql5.7/bin/mysqld --defaults-file=./my.cnf --basedir=/usr/local/mysql5.7 --datadir=/usr/local/data/mysql5.7 --plugin-dir=/usr/local/mysql5.7/lib/plugin --user=mysql --log-error=/usr/local/mysql5.7/mysqld.log --open-files-limit=28192 --pid-file=/usr/local/data/mysql5.7/mysql57.pid --socket=/usr/local/data/mysql5.7/mysql.sock --port=3308
  • 登录

登录也必须指定sock路径和端口号 否则会登录到旧版本的数据库

回车并输入初始密码完成登录(安装时用的--initialize-insecure,所以没有密码,这边输入即是初始密码)

#需指定sock路径和端口号,回车并输入初始密码
cd /usr/local/mysql5.7/bin
./mysql -S /usr/local/data/mysql5.7/mysql.sock -P 3308 -uroot -p
  • php调用的mysql版本配置

php的mysql库调用版本取决于php.ini里面的配置项目(sock路径和端口号), 修改后重启apache即可,如果调用的是mysqli则修改配置项mysqli.default_port和mysqli.default_socket

mysql.default_port=3308
mysql.default_socket =/usr/local/data/mysql5.7/mysql.sock

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值