linux怎么部署两套不同版本的mysql?

linux服务器上已经安装了一套mysql5.7.28的版本,现在想新部署一套8.0.29的mysql,安装时提示如下报错,该如何处理?

img

为了减少mysql多版本共存带来的相互干扰,我建议你使用docker来部署mysql,linux下安装docker很方便
https://hub.docker.com/_/mysql/tags?page=1&name=5.7.28

img


img


这两个版本都有,而且命令就是docker pull mysql:8.0.29 和docker pull mysql:5.7.28 安装好之后,可以很灵活的切换mysql数据库服务器

问题点:一台服务器上装多个mysql
大致步骤是:
1、规划好目录和端口,
2、配置my.cnf文件,
3、初始化每一个节点,
4、启动每个节点,
5、修改密码,
6、测试数据库登录。

https://blog.51cto.com/u_13348545/6264553

最省事的做法就是安装小皮Linux版。

建议使用docker容器安装,使用docker可以快速的安装mysql环境。

docker最方便。

用docker,端口区分一下就行

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/649421
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:linux系统安装mysql5.7.36,按照步骤来,保证你起飞~
  • 除此之外, 这篇博客: Linux系统安装mysql 5.7版本中的 2.4 删除系统自带的mysql及其依赖(防止冲突) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    yum -y remove mysql-libs.x86_64

  • 您还可以看一下 汤燕老师的极简的MySql入门速成视频教程【完整版】课程中的 044-mysql中的索引小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解决方法:

    根据参考资料提供的错误信息和解决方法,我们可以得出以下解决步骤:

    1. 首先,在Linux服务器上安装MySQL 8.0.29版本。可以使用以下命令进行安装:
    sudo apt update
    sudo apt install mysql-server-8.0
    
    1. 在安装过程中,如果出现提示错误1130 - Host '192.168.45.83' is not allowed to connect to this MySQL server,需要修改MySQL权限表允许远程连接。使用以下步骤进行修改:

    2. 连接到MySQL服务器:

    mysql -u root -p
    
    • 输入密码登录MySQL。

    • 进入MySQL数据库:

    use mysql
    
    1. 查看MySQL数据库中所有的表:
    show tables;
    
    1. 查看user表中的数据:
    select host, user from user;
    
    1. 修改user表中的host,将host的值改为"%",表示允许任何主机连接。假设用户名为"root",使用以下命令进行修改:
    update user set host='%' where user='root';
    
    1. 刷新权限表:
    flush privileges;
    
    1. 再次查看user表中的数据,确保host已经被修改为"%":
    select host, user from user;
    

    经过以上步骤,应该能够成功在Linux服务器上部署两个不同版本的MySQL。如果问题仍然存在,可能是由于其他原因导致的,可能需要进一步调查和分析错误信息以解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可以用docker部署,分别搞两个版本的镜像

建议采用docker安装,运行mysql-doucker容器,方便

用docker或者编译安装不加环境变量

使用docker进行部署,可以部署两个不同版本的mysql。非常方便管理。

用二进制包安装,配置文件区分下端口就行,别用docker

包发生冲突了
参考 https://www.cnblogs.com/guihai/p/16521308.html

回答引用chatgpt
在 Linux 上部署两个不同版本的 MySQL 可以通过以下步骤进行操作:

  1. 下载和安装不同版本的 MySQL:

    • 首先,下载所需版本的 MySQL 安装包,并将其解压到合适的位置。你可以从 MySQL 官方网站或软件源获取不同版本的 MySQL 安装包。
    • 分别执行不同版本 MySQL 的安装过程,按照指示完成安装。
  2. 配置不同版本的 MySQL:

    • 对于每个 MySQL 版本,创建一个独立的数据目录和配置文件。
    • 配置每个 MySQL 实例的端口号、日志文件路径、数据目录等参数。打开每个版本的配置文件(一般为 my.cnfmy.ini),根据需要进行相应的配置。
  3. 启动不同版本的 MySQL:

    • 使用不同的命令启动每个 MySQL 实例,指定对应的配置文件和数据目录。
    • 例如,假设你有两个 MySQL 版本:MySQL 5.7 和 MySQL 8.0,分别对应的配置文件为 my57.cnfmy80.cnf。你可以使用以下命令启动两个实例:
      mysqld --defaults-file=/path/to/my57.cnf --datadir=/path/to/data57
      mysqld --defaults-file=/path/to/my80.cnf --datadir=/path/to/data80
      
  4. 确认 MySQL 实例是否运行:

    • 使用 ps 命令检查 MySQL 实例的进程是否在运行,确保两个实例都已成功启动。
  5. 连接到不同版本的 MySQL:

    • 使用不同的客户端工具连接到相应版本的 MySQL 实例,可以使用以下命令连接到 MySQL 5.7 和 MySQL 8.0:
      mysql --host=127.0.0.1 --port=3306 --user=your_user --password=your_password
      
      mysql --host=127.0.0.1 --port=3307 --user=your_user --password=your_password
      
      其中,--port 参数分别指定了两个实例的端口号。

通过上述步骤,你可以在 Linux 上成功部署两个不同版本的 MySQL,并可以通过不同的端口连接到相应的实例。请注意,在部署多个 MySQL 实例时,确保每个实例使用不同的端口和数据目录,以避免冲突和混淆。

MySQL 5.7.28 和 MySQL 8.0.29 应该分别使用不同的安装目录。如果默认安装目录相同,可能会导致冲突。在安装 MySQL 8.0.29 时,可以通过修改 my.cnf 或 my.ini 配置文件中的 basedir 和 datadir 来指定新的安装目录。

  1. 如果性能没啥要求的话,建议使用docker安装
  2. 如果性能有要求8.0.29请手工编译安装,不能是用rpm同时安装两个版本
    手工编译安装可以查看文档、
    【原创】mysql8.x之编译安装全过程_编译安装mysql8_chj113的博客-CSDN博客 前言:mysql5.7.x以上版本编译安装严重依赖boost库,不同版本boost也不同。因此下载mysql最好选择下载自带boost的版本。本文以mysql8.0.25为例,对应boost版本为boost_1_73_0,系统为centos7.x,数据库安装位置/usr/local/mysql1、下载mysql8.0.25(地址)注意:下载如图所示boost版本2、创建用户组和用户(非root的安全运行账户)groupadd mysqluseradd mysql -g mysql -_编译安装mysql8 https://blog.csdn.net/chj113/article/details/123264099

参考gpt:
结合自己分析给你如下建议:
根据您的截图,您的安装失败是因为mysql-community-client-plugins-8.0.24-1.el8.x86_64这个依赖包和mysql-community-client-8.0.24-1.el8.x86_64这个包有冲突。您可以尝试以下方法解决这个问题:
1.卸载已经安装的MySQL 5.7.28版本,然后重新安装MySQL 8.0.29版本。
2.在安装MySQL 8.0.29之前,先删除或禁用mysql-community-client-plugins-8.0.24-1.el8.x86_64这个包,然后再安装MySQL 8.0.293。
3.在安装MySQL 8.0.29时,选择自定义安装,只安装MySQL Server组件,不安装其他组件。

在 Linux 系统上部署两套不同版本的 MySQL 可以通过以下步骤完成。我们假设你要安装 MySQL 8.0 和 MySQL 5.7 两个版本。

  1. 安装 MySQL 8.0:

    首先,你可以按照 MySQL 8.0 的安装方式进行安装。具体步骤可能因你的 Linux 发行版而异。以下是一般的步骤,你可能需要根据实际情况进行调整。

    • 添加 MySQL 官方软件源 (Repository)。
    • 更新软件包列表。
    • 安装 MySQL 8.0。

    示例(以 Ubuntu 为例):

    # 添加 MySQL 官方软件源
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
    sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb
    
    # 更新软件包列表
    sudo apt-get update
    
    # 安装 MySQL 8.0
    sudo apt-get install mysql-server
    
  2. 安装 MySQL 5.7:

    接下来,你需要以与上面相似的方式安装 MySQL 5.7,但是为了避免与 MySQL 8.0 发生冲突,你需要在安装过程中更改默认的配置。

    示例(以 Ubuntu 为例):

    # 添加 MySQL 5.7 的 APT Repository
    sudo apt-get install software-properties-common
    sudo add-apt-repository -y 'deb http://archive.ubuntu.com/ubuntu trusty universe'
    
    # 更新软件包列表
    sudo apt-get update
    
    # 安装 MySQL 5.7
    sudo apt-get install mysql-server-5.7
    
  3. 配置不同的 MySQL 实例:

    安装完成后,你会有两个不同版本的 MySQL 安装在系统中。为了确保它们彼此独立并避免冲突,你需要对它们进行配置,使它们在不同的端口和数据目录运行。

    • 修改 MySQL 8.0 配置:

      • 打开 MySQL 8.0 的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
      • 修改 port 配置项,将其设置为 MySQL 8.0 所使用的端口号(默认为 3306)。
      • 修改 datadir 配置项,将其设置为 MySQL 8.0 数据目录的路径。
    • 修改 MySQL 5.7 配置:

      • 打开 MySQL 5.7 的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
      • 修改 port 配置项,将其设置为 MySQL 5.7 所使用的端口号(可以选择一个未被占用的端口)。
      • 修改 datadir 配置项,将其设置为 MySQL 5.7 数据目录的路径。
  4. 启动 MySQL 服务:

    分别启动两个版本的 MySQL 服务:

    # 启动 MySQL 8.0
    sudo service mysql start
    
    # 启动 MySQL 5.7
    sudo service mysql-5.7 start
    

现在,你应该已经成功在 Linux 系统上部署了两套不同版本的 MySQL。你可以通过连接到相应的端口(默认情况下,MySQL 8.0 连接到 3306 端口,MySQL 5.7 连接到另一个端口)来访问它们,并在不同的数据库中进行操作。请注意,你可以根据需要在这两个版本之间切换,只需要启动或停止相应的服务。

在Linux系统中,我们可以安装和运行多个MySQL服务。以下是在Linux系统中安装和配置两个MySQL的步骤:

1. 首先,我们需要下载并安装MySQL Community Server。我们可以在MySQL官方网站上找到最新的安装包,并根据您的系统版本下载合适的版本。例如,对于Ubuntu系统,您可以使用APT软件包管理器来安装MySQL:
sudo apt-get update
sudo apt-get install mysql-server
如果您打算安装两个MySQL实例,您需要使用不同的端口和数据目录。您可以选择安装不同的MySQL版本或相同的MySQL版本。如果您选择安装相同版本的MySQL,确保您安装了不同版本的软件包。
2. 使用systemctl命令启动和停止MySQL服务:
sudo systemctl start mysql1
sudo systemctl stop mysql1
以上命令将启动或停止名为mysql1的MySQL服务。您可以根据需要更改服务名和其他设置。
3. 调整MySQL端口和数据目录。更改MySQL服务的默认端口和数据目录:
sudo vim /etc/mysql/conf.d/mysql1.cnf
# 这里使用名为mysql1的示例服务
[mysqld]
port=3307
datadir=/var/lib/mysql1
sudo systemctl restart mysql1
请注意,您需要将MySQL设置文件添加到/etc/mysql/conf.d/目录中,并且您可以使用任何名称,只要您确保它是唯一的。
4. 创建第二个MySQL服务实例。使用以下命令创建第二个MySQL服务实例:
sudo cp -r /etc/mysql /etc/mysql2
sudo vim /etc/mysql2/conf.d/mysql2.cnf
# 这里使用名为mysql1的示例服务
[mysqld]
port=3308
datadir=/var/lib/mysql2
sudo systemctl enable mysql2
sudo systemctl start mysql2
以上命令将创建一个名为mysql2的MySQL服务实例,并在文件系统的另一个位置(例如/var/lib/mysql2)上使用端口3308托管数据目录。请注意,我们使用了"-r"标志来保留所有文件权限和所有者。如果您打算将其放置在另一个安装目录中,请更改目录路径。

在Linux中部署两套不同版本的MySQL需要按照以下步骤进行:

  1. 安装不同版本的MySQL

首先,需要下载需要的MySQL版本,并安装在不同的目录中。可以通过以下命令进行安装:

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
sudo yum install mysql-community-server

其中,mysql57-community-release-el7-11.noarch.rpm是MySQL 5.7版本的安装包,可以根据需要修改。

安装完成后,可以通过以下命令来启动/停止/重启MySQL服务:

sudo systemctl start/stop/restart mysqld.service

由于两个版本的MySQL需要独立运行,因此需要将它们安装在不同的目录中。例如,可以将MySQL 5.7安装在/usr/local/mysql-5.7目录中,而MySQL 8.0安装在/usr/local/mysql-8.0目录中。

  1. 配置不同的端口号

MySQL默认使用3306端口进行通信,如果两个不同版本的MySQL都使用同一个端口,会导致冲突。因此,需要将其中一个MySQL的端口号更改为其他可用的端口号。

可以通过以下命令来修改MySQL的端口号:

  • 修改MySQL 5.7的端口号

/usr/local/mysql-5.7/my.cnf配置文件中,找到以下行:

port=3306

将其修改为其他可用的端口号,例如:

port=3307
  • 修改MySQL 8.0的端口号

/usr/local/mysql-8.0/my.cnf配置文件中,找到以下行:

port=3306

将其修改为其他可用的端口号,例如:

port=3308

修改完成后,需要重启MySQL服务以使更改生效。

  1. 创建不同的数据目录

对于不同版本的MySQL,需要使用不同的数据目录,否则会导致数据冲突。因此,需要在安装目录下创建不同的数据目录。

例如,在/usr/local/mysql-5.7目录下创建名为data的数据目录:

sudo mkdir /usr/local/mysql-5.7/data
sudo chown -R mysql:mysql /usr/local/mysql-5.7/data

同样,在/usr/local/mysql-8.0目录下创建名为data的数据目录:

sudo mkdir /usr/local/mysql-8.0/data
sudo chown -R mysql:mysql /usr/local/mysql-8.0/data
  1. 配置不同的配置文件

由于两个版本的MySQL需要独立运行,因此需要为它们分别配置不同的配置文件。

例如,在/usr/local/mysql-5.7目录下创建名为my.cnf的配置文件:

[mysqld]
port=3307
datadir=/usr/local/mysql-5.7/data
socket=/usr/local/mysql-5.7/mysql.sock

同样,在/usr/local/mysql-8.0目录下创建名为my.cnf的配置文件:

[mysqld]
port=3308
datadir=/usr/local/mysql-8.0/data
socket=/usr/local/mysql-8.0/mysql.sock
  1. 初始化MySQL

对于每个安装的MySQL版本,需要进行初始化以创建初始数据库和授权表。

对于MySQL 5.7,可以使用以下命令进行初始化:

sudo /usr/local/mysql-5.7/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7/data

对于MySQL 8.0,可以使用以下命令进行初始化:

sudo /usr/local/mysql-8.0/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql-8.0/data
  1. 启动MySQL服务

启动MySQL 5.7服务:

sudo systemctl start mysqld@5.7.service

启动MySQL 8.0服务:

sudo systemctl start mysqld@8.0.service

通过以上步骤,就可以在Linux上部署两套不同版本的MySQL了。

在Linux系统上,我们可以通过安装不同版本的MySQL来部署两个不同版本的MySQL。下面是详细的步骤:

  1. 安装MySQL

首先,您需要安装MySQL。您可以通过以下命令在Linux系统上安装MySQL:

sudo apt-get update
sudo apt-get install mysql-server
  1. 创建MySQL数据目录

在部署两个不同版本的MySQL时,您需要为每个版本创建一个独立的数据目录。您可以使用以下命令创建数据目录:

sudo mkdir /var/lib/mysql570
sudo mkdir /var/lib/mysql580
  1. 安装另一个版本的MySQL

在Linux系统上安装另一个版本的MySQL与安装第一个版本的MySQL类似。您可以使用以下命令安装MySQL 5.8:

sudo apt-get install mysql-server-5.8
  1. 配置MySQL

为了让两个MySQL实例能够在同一台机器上运行,您需要配置MySQL。您可以编辑MySQL配置文件“/etc/mysql/my.cnf”,并为每个MySQL实例创建不同的配置文件。以下是为两个MySQL实例创建配置文件的示例代码:

sudo cp /etc/mysql/my.cnf /etc/mysql/my570.cnf
sudo cp /etc/mysql/my.cnf /etc/mysql/my580.cnf

然后,您可以编辑每个配置文件并为每个MySQL实例设置不同的端口、数据目录和其他配置选项。以下是示例代码,用于为两个MySQL实例分别设置不同的端口和数据目录:

MySQL 5.7.0:

[mysqld]
user = mysql
port = 3307
datadir = /var/lib/mysql570
socket = /var/run/mysqld/mysqld570.sock

MySQL 5.8.0:

[mysqld]
user = mysql
port = 3308
datadir = /var/lib/mysql580
socket = /var/run/mysqld/mysqld580.sock
  1. 启动MySQL服务

在完成MySQL的安装和配置后,您需要启动每个MySQL实例的服务。您可以使用以下命令启动MySQL 5.7.0服务:

sudo service mysql start --defaults-file=/etc/mysql/my570.cnf

您可以使用以下命令启动MySQL 5.8.0服务:

sudo service mysql start --defaults-file=/etc/mysql/my580.cnf
  1. 验证MySQL安装

可以使用以下命令验证MySQL是否已正确安装:

sudo mysql -u root -p

在MySQL提示符下,您可以输入以下命令来显示MySQL版本号:

SELECT VERSION();

您应该能够在两个MySQL实例中看到不同的版本号。

总结:

通过安装和配置不同版本的MySQL,您可以在同一台机器上运行两个独立的MySQL实例。您需要为每个实例创建独立的数据目录和配置文件,并在启动MySQL服务时指定配置文件。这样,您就可以同时运行两个不同版本的MySQL,而且它们不会互相干扰。