在一台服务器上同时安装MySQL 5.6、5.7和8.0等3个版本

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 介绍在一台服务器上同时安装MySQL 5.6、5.7和8.0等3个版本等操作方法。

介绍在一台服务器上同时安装MySQL 5.6、5.7和8.0等3个版本等操作方法。

下载下面三个版本的通用安装包:



https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xzhttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gzhttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz

解压到/usr/local目录并创建软连接:



# cd /usr/local# tar xvf ~/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz # tar xvf ~/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz# tar xvf ~/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz# ln -s mysql-5.7.35-linux-glibc2.12-x86_64 mysql57# ln -s mysql-5.6.51-linux-glibc2.12-x86_64 mysql56# ln -s mysql-8.0.27-linux-glibc2.12-x86_64 mysql80

初始化数据:




# yum install -y perl# yum install -y autoconf# yum install -y libaio# mkdir -p /usr/local/mysql80/data# mysql80/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql80/data# mysql57/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql57/data# cd mysql56# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql56/data

5.6初始化需要进入到mysql56目录下进行。

在数据初始化的过程中8.0和5.7会初始生成一个临时密码,5.6生成的是空密码,登录后修改密码。在5.6中修改密码的命令有所不同:


mysql> set password=password('yaoyuan');

编辑一个mysql的配置文件,/etc/my.cnf



[client]user=rootpassword=yaoyuan[mysql]prompt=(\\u@\\h) [\\d]>\\_[mysqld_multi]mysqld     = /usr/local/mysql80/bin/mysqld_safe     #启动时调用的命令mysqladmin = /usr/local/mysql80/bin/mysqladmin    #关闭时调用的命令 下面需要提供用户和密码[mysqld56]mysqladmin = /usr/local/mysql56/bin/mysqladmin # 需要用5.6自己的关机命令basedir=/usr/local/mysql56socket     = /tmp/mysql.sock56port       = 3307datadir    = /usr/local/mysql56/data[mysqld57]basedir=/usr/local/mysql57socket     = /tmp/mysql.sock57port       = 3308datadir    = /usr/local/mysql57/data[mysqld80]basedir=/usr/local/mysql80socket     = /tmp/mysql.sock80port       = 3309datadir    = /usr/local/mysql80/data

[mysqld_multi]下面要指定关闭用的用户名和密码,这个用户需要有shutdown的权限。也可以配置到[mysql]下面,如果配置到[mysqld_multi]下面需要把password改成pass,不然无法关机,这里官方文档错了。

MySQL 8.0的关机命令对MySQL 5.6不适用,会出错:



# /usr/local/mysql/bin/mysqladmin  shutdown -S /tmp/mysql.sock56mysqladmin: shutdown failed; error: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shutdown' at line 1'

启动或关闭MySQL不同版本的进程,并检查状态:



[root@mysql_g bin]# mysqld_multi start 56,57,80[root@mysql_g bin]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld56 is runningMySQL server from group: mysqld57 is runningMySQL server from group: mysqld80 is running[root@mysql_g ~]# ps -ef|grep mysqldroot      3181     1  0 02:49 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql57 --socket=/tmp/mysql.sock57 --port=3308 --datadir=/usr/local/mysql57/datamysql     3300  3181  0 02:49 pts/1    00:00:01 /usr/local/mysql57/bin/mysqld --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data --plugin-dir=/usr/local/mysql57/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock57 --port=3308root      3665     1  0 03:02 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql56 --socket=/tmp/mysql.sock56 --port=3307 --datadir=/usr/local/mysql56/datamysql     3794  3665  0 03:02 pts/1    00:00:01 /usr/local/mysql56/bin/mysqld --basedir=/usr/local/mysql56 --datadir=/usr/local/mysql56/data --plugin-dir=/usr/local/mysql56/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock56 --port=3307root      3851     1  0 03:11 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql80 --socket=/tmp/mysql.sock80 --port=3309 --datadir=/usr/local/mysql80/datamysql     3970  3851 11 03:11 pts/1    00:00:01 /usr/local/mysql80/bin/mysqld --basedir=/usr/local/mysql80 --datadir=/usr/local/mysql80/data --plugin-dir=/usr/local/mysql80/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock80 --port=3309root      4028  2966  0 03:11 pts/1    00:00:00 grep --color=auto mysqld[root@mysql_g ~]# mysqld_multi stop 57[root@mysql_g ~]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld56 is runningMySQL server from group: mysqld57 is not runningMySQL server from group: mysqld80 is running


https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xzhttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gzhttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz

解压到/usr/local目录并创建软连接:


# cd /usr/local# tar xvf ~/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz # tar xvf ~/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz# tar xvf ~/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz# ln -s mysql-5.7.35-linux-glibc2.12-x86_64 mysql57# ln -s mysql-5.6.51-linux-glibc2.12-x86_64 mysql56# ln -s mysql-8.0.27-linux-glibc2.12-x86_64 mysql80

初始化数据:


# yum install -y perl# yum install -y autoconf# yum install -y libaio# mkdir -p /usr/local/mysql80/data# mysql80/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql80/data# mysql57/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql57/data# cd mysql56# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql56/data

5.6初始化需要进入到mysql56目录下进行。

在数据初始化的过程中8.0和5.7会初始生成一个临时密码,5.6生成的是空密码,登录后修改密码。在5.6中修改密码的命令有所不同:


mysql> set password=password('yaoyuan');

编辑一个mysql的配置文件,/etc/my.cnf


[client]user=rootpassword=yaoyuan[mysql]prompt=(\\u@\\h) [\\d]>\\_[mysqld_multi]mysqld     = /usr/local/mysql80/bin/mysqld_safe     #启动时调用的命令mysqladmin = /usr/local/mysql80/bin/mysqladmin    #关闭时调用的命令 下面需要提供用户和密码[mysqld56]mysqladmin = /usr/local/mysql56/bin/mysqladmin # 需要用5.6自己的关机命令basedir=/usr/local/mysql56socket     = /tmp/mysql.sock56port       = 3307datadir    = /usr/local/mysql56/data[mysqld57]basedir=/usr/local/mysql57socket     = /tmp/mysql.sock57port       = 3308datadir    = /usr/local/mysql57/data[mysqld80]basedir=/usr/local/mysql80socket     = /tmp/mysql.sock80port       = 3309datadir    = /usr/local/mysql80/data

[mysqld_multi]下面要指定关闭用的用户名和密码,这个用户需要有shutdown的权限。也可以配置到[mysql]下面,如果配置到[mysqld_multi]下面需要把password改成pass,不然无法关机,这里官方文档错了。

MySQL 8.0的关机命令对MySQL 5.6不适用,会出错:



# /usr/local/mysql/bin/mysqladmin  shutdown -S /tmp/mysql.sock56mysqladmin: shutdown failed; error: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shutdown' at line 1'

启动或关闭MySQL不同版本的进程,并检查状态:




[root@mysql_g bin]# mysqld_multi start 56,57,80[root@mysql_g bin]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld56 is runningMySQL server from group: mysqld57 is runningMySQL server from group: mysqld80 is running[root@mysql_g ~]# ps -ef|grep mysqldroot      3181     1  0 02:49 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql57 --socket=/tmp/mysql.sock57 --port=3308 --datadir=/usr/local/mysql57/datamysql     3300  3181  0 02:49 pts/1    00:00:01 /usr/local/mysql57/bin/mysqld --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data --plugin-dir=/usr/local/mysql57/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock57 --port=3308root      3665     1  0 03:02 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql56 --socket=/tmp/mysql.sock56 --port=3307 --datadir=/usr/local/mysql56/datamysql     3794  3665  0 03:02 pts/1    00:00:01 /usr/local/mysql56/bin/mysqld --basedir=/usr/local/mysql56 --datadir=/usr/local/mysql56/data --plugin-dir=/usr/local/mysql56/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock56 --port=3307root      3851     1  0 03:11 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql80 --socket=/tmp/mysql.sock80 --port=3309 --datadir=/usr/local/mysql80/datamysql     3970  3851 11 03:11 pts/1    00:00:01 /usr/local/mysql80/bin/mysqld --basedir=/usr/local/mysql80 --datadir=/usr/local/mysql80/data --plugin-dir=/usr/local/mysql80/lib/plugin --user=mysql --log-error=mysql_g.localdomain.err --pid-file=mysql_g.localdomain.pid --socket=/tmp/mysql.sock80 --port=3309root      4028  2966  0 03:11 pts/1    00:00:00 grep --color=auto mysqld[root@mysql_g ~]# mysqld_multi stop 57[root@mysql_g ~]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld56 is runningMySQL server from group: mysqld57 is not runningMySQL server from group: mysqld80 is running
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
6天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
28 4
|
2天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
40 2
|
2天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
9 0
|
2天前
|
存储 分布式计算 NoSQL
MongoDB的简介和安装(在服务器上)
MongoDB的简介和安装(在服务器上)
15 0
|
9天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
22 0
|
17天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
86 1
|
30天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
69 0

热门文章

最新文章