mysql - 不同版本下多实例安装部署
mysql二进制包下载:
- 下载地址:https://downloads.mysql.com/archives/community/
- 二进制安装包:
- 下载版本:mysql-5.6 mysql-8.0
上传到Linux物理机:
- xshell
- item
- sftp
创建软链接至不同版本:
mysql16 -> mysql 5.6 版本
mysql18 -> mysql 8.0 版本
[root@localhost database]# ln -s mysql-5.6.49-linux-glibc2.12-x86_64 mysql16
[root@localhost database]# ln -s mysql-8.0.21-linux-glibc2.12-x86_64 mysql18
修改环境变量:
[root@localhost database]# vim /etc/profile
注释掉:mysql相关的环境变量
#export PATH=/root/mysql/database/mysql18/bin:$PATH
前期规划:
- 标识符:
-
3316 : mysql 5.6
3318 : mysql 8.0
-
- 配置文件 2份:
- /root/mysql/data/3316/my.cnf
- /root/mysql/data/3318/my.cnf
- 数据目录 2份:
- /root/mysql/data/3316/data
- /root/mysql/data/3318/data
- 初始化数据目录 2次:
- binlog日志目录 2份:
- /root/mysql/log/3316
- /root/mysql/log/3318
- socket 2份:
- /tmp/mysql3316.sock
- /tmp/mysql3318.sock
- 端口 2份:port=3316, 3318
- server_id 2个: server_id=16, 18
执行步骤:
创建目录及文件:
创建数据目录:
[root@localhost database]# mkdir -p /root/mysql/data/3316/data [root@localhost database]# mkdir -p /root/mysql/data/3318/data
创建mysql错误日志文件:
[root@localhost database]# touch /root/mysql/data/3316/mysql.log [root@localhost database]# touch /root/mysql/data/3318/mysql.log
创建binlog目录:
[root@localhost database]# mkdir -p /root/mysql/log/3316 [root@localhost database]# mkdir -p /root/mysql/log/3318
创建2份配置文件my.cnf:
mysql16:
cat > /root/mysql/data/3316/my.cnf <<EOF [mysqld] basedir=/root/mysql/database/mysql16 datadir=/root/mysql/data/3316/data socket=/tmp/mysql3316.sock log_error=/root/mysql/data/3316/mysql.log port=3316 server_id=16 log_bin=/root/mysql/log/3316/mysql-bin
user=mysql EOF
mysql18:
cat > /root/mysql/data/3318/my.cnf <<EOF [mysqld] basedir=/root/mysql/database/mysq18 datadir=/root/mysql/data/3318/data socket=/tmp/mysql3318.sock log_error=/root/mysql/data/3318/mysql.log port=3318 server_id=18 log_bin=/root/mysql/log/3318/mysql-bin
user=mysql EOF
初始化数据:
设置用户、用户组:
chown -R mysql.mysql /root/mysql/data /root/mysql/log
关闭 /etc/my.cnf:
[root@localhost database]# mv /etc/my.cnf /etc/my.cnf.bak
初始化数据:
# mysql 5.6的初始化方法有所不同,请注意:
/root/mysql/database/mysql16/scripts/mysql_install_db --user=mysql --datadir=/root/mysql/data/3316/data --basedir=/root/mysql/database/mysql16
# mysql 8.0 初始化:
/root/mysql/database/mysql18/bin/mysqld --initialize-insecure --user=mysql --datadir=/root/mysql/data/3318/data --basedir=/root/mysql/database/mysql18
启动2个实例:
启动mysql5.6实例:
/root/mysql/database/mysql16/bin/mysqld_safe --defaults-file=/root/mysql/data/3316/my.cnf & 或者 /root/mysql/database/mysql16/bin/mysqld --defaults-file=/root/mysql/data/3316/my.cnf &
启动mysql8.0实例:
/root/mysql/database/mysql18/bin/mysqld_safe --defaults-file=/root/mysql/data/3318/my.cnf & 或者 /root/mysql/database/mysql18/bin/mysqld --defaults-file=/root/mysql/data/3318/my.cnf &
登录mysql实例:
本地登录mysql5.6:
/root/mysql/database/mysql16/bin/mysql -uroot -P3316 -S /tmp/mysql3316.sock
本地登录mysql8.0:
/root/mysql/database/mysql16/bin/mysql -uroot -P3318 -S /tmp/mysql3318.sock