mysql多个版本服务实例(多实例)实战
数据库8.0版本客户端会向下兼容,所以可以使用8.0版本客户端命令管理其他版本实例。
01 数据库服务程序下载解压
...省略...
确认数据库服务安装部署后情况:
ll -d mysql*
lrwxrwxrwx 1 root root 35 10月 27 23:28 mysql56 -> mysql-5.6.48-linux-glibc2.12-x86_64
drwxr-xr-x 13 root root 191 10月 27 23:27 mysql-5.6.48-linux-glibc2.12-x86_64
-r-------- 1 root root 343082156 10月 27 23:00 mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
lrwxrwxrwx 1 root root 35 10月 27 23:29 mysql57 -> mysql-5.7.30-linux-glibc2.12-x86_64
drwxr-xr-x 9 root root 129 10月 27 23:28 mysql-5.7.30-linux-glibc2.12-x86_64
-r-------- 1 root root 660017902 10月 27 23:02 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
02 数据库服务环境变量取消
将以下环境变量配置信息注释
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
配置信息注释掉后,可以重新建立远程连接,生成新的会话信息
验证环境变量信息已经被注释
mysql -V
-bash:mysql:command not found
-- 看到以上信息,表示数据库服务已经被注释
03 数据库服务配置文件移除
移动数据库默认配置文件,以免多实例版本服务默认加载
mv /etc/my.cnf /backup
04 数据库服务实例配置目录
创建数据库多实例所需目录
mkdir -p /data/3356/data
mkdir -p /data/3357/data
chown -R mysql. /data/*
05 数据库服务初始过程操作
数据库服务初始化操作:5.6版本
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/ --datadir=/data/3356/data
-- 初始化命令执行完毕后,输出信息显示两个ok,就表示5.6版本数据库程序初始化成功
数据库服务初始化操作:5.7版本
/usr/local/mysql57/bin/mysqld --user=mysql --initialize-insecure --basedir=/usr/local/mysql57/ --datadir=/data/3357/data
数据库服务初始化操作:8.0版本
初始化操作命令与操作过程和5.7一致
06 数据库服务配置文件编写
数据库服务实例服务配置文件编写:5.6
cat >/data/3356/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql56
datadir=/data/3356/data
socket=/tmp/mysql3356.sock
port=3356
EOF
数据库服务实例服务配置文件编写:5.7
port=3356
EOF
# 数据库服务实例服务配置文件编写:5.7
cat >/data/3357/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/3357/data
socket=/tmp/mysql3357.sock
port=3357
EOF
数据库服务实例服务配置文件编写:8.0
.. 省略..
-- 多实例配置文件信息和5.7一致,不做重复性操作了
07 数据库服务配置启动文件
数据库服务多实例启动文件信息:5.6
vim /etc/systemd/system/mysqld3356.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql56/bin/mysqld --defaults-file=/data/3356/my.cnf
LimitNOFILE=5000
数据库服务多实例启动文件信息:5.7
vim /etc/systemd/system/mysqld3357.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/3357/my.cnf
LimitNOFILE=5000
数据库服务多实例启动文件信息:8.0
同上
08 数据库服务程序启动操作
systemctl start mysqld3356
systemctl start mysqld3357
# 检查多实例程序是否启动成功
ss -lntp|grep mysqld
进行数据库连接测试
mysql -S /tmp/mysql3356.sock
mysql -S /tmp/mysql3357.sock
说明:数据库8.0版本客户端会向下兼容,所以可以使用8.0版本客户端命令管理其他版本实例。