首先采用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