linux服务器上已经安装了一套mysql5.7.28的版本,现在想新部署一套8.0.29的mysql,安装时提示如下报错,该如何处理?
为了减少mysql多版本共存带来的相互干扰,我建议你使用docker来部署mysql,linux下安装docker很方便
https://hub.docker.com/_/mysql/tags?page=1&name=5.7.28
问题点:一台服务器上装多个mysql
大致步骤是:
1、规划好目录和端口,
2、配置my.cnf文件,
3、初始化每一个节点,
4、启动每个节点,
5、修改密码,
6、测试数据库登录。
最省事的做法就是安装小皮Linux版。
建议使用docker容器安装,使用docker可以快速的安装mysql环境。
docker最方便。
用docker,端口区分一下就行
不知道你这个问题是否已经解决, 如果还没有解决的话:yum -y remove mysql-libs.x86_64
问题解决方法:
根据参考资料提供的错误信息和解决方法,我们可以得出以下解决步骤:
sudo apt update
sudo apt install mysql-server-8.0
在安装过程中,如果出现提示错误1130 - Host '192.168.45.83' is not allowed to connect to this MySQL server,需要修改MySQL权限表允许远程连接。使用以下步骤进行修改:
连接到MySQL服务器:
mysql -u root -p
输入密码登录MySQL。
进入MySQL数据库:
use mysql
show tables;
select host, user from user;
update user set host='%' where user='root';
flush privileges;
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 可以通过以下步骤进行操作:
下载和安装不同版本的 MySQL:
配置不同版本的 MySQL:
my.cnf
或 my.ini
),根据需要进行相应的配置。启动不同版本的 MySQL:
my57.cnf
和 my80.cnf
。你可以使用以下命令启动两个实例:mysqld --defaults-file=/path/to/my57.cnf --datadir=/path/to/data57
mysqld --defaults-file=/path/to/my80.cnf --datadir=/path/to/data80
确认 MySQL 实例是否运行:
ps
命令检查 MySQL 实例的进程是否在运行,确保两个实例都已成功启动。连接到不同版本的 MySQL:
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 来指定新的安装目录。
参考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 两个版本。
安装 MySQL 8.0:
首先,你可以按照 MySQL 8.0 的安装方式进行安装。具体步骤可能因你的 Linux 发行版而异。以下是一般的步骤,你可能需要根据实际情况进行调整。
示例(以 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
安装 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
配置不同的 MySQL 实例:
安装完成后,你会有两个不同版本的 MySQL 安装在系统中。为了确保它们彼此独立并避免冲突,你需要对它们进行配置,使它们在不同的端口和数据目录运行。
修改 MySQL 8.0 配置:
/etc/mysql/mysql.conf.d/mysqld.cnf
。port
配置项,将其设置为 MySQL 8.0 所使用的端口号(默认为 3306)。datadir
配置项,将其设置为 MySQL 8.0 数据目录的路径。修改 MySQL 5.7 配置:
/etc/mysql/mysql.conf.d/mysqld.cnf
。port
配置项,将其设置为 MySQL 5.7 所使用的端口号(可以选择一个未被占用的端口)。datadir
配置项,将其设置为 MySQL 5.7 数据目录的路径。启动 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需要按照以下步骤进行:
首先,需要下载需要的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
目录中。
MySQL默认使用3306端口进行通信,如果两个不同版本的MySQL都使用同一个端口,会导致冲突。因此,需要将其中一个MySQL的端口号更改为其他可用的端口号。
可以通过以下命令来修改MySQL的端口号:
在/usr/local/mysql-5.7/my.cnf
配置文件中,找到以下行:
port=3306
将其修改为其他可用的端口号,例如:
port=3307
在/usr/local/mysql-8.0/my.cnf
配置文件中,找到以下行:
port=3306
将其修改为其他可用的端口号,例如:
port=3308
修改完成后,需要重启MySQL服务以使更改生效。
对于不同版本的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
由于两个版本的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
对于每个安装的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
启动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。下面是详细的步骤:
首先,您需要安装MySQL。您可以通过以下命令在Linux系统上安装MySQL:
sudo apt-get update
sudo apt-get install mysql-server
在部署两个不同版本的MySQL时,您需要为每个版本创建一个独立的数据目录。您可以使用以下命令创建数据目录:
sudo mkdir /var/lib/mysql570
sudo mkdir /var/lib/mysql580
在Linux系统上安装另一个版本的MySQL与安装第一个版本的MySQL类似。您可以使用以下命令安装MySQL 5.8:
sudo apt-get install mysql-server-5.8
为了让两个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
在完成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
可以使用以下命令验证MySQL是否已正确安装:
sudo mysql -u root -p
在MySQL提示符下,您可以输入以下命令来显示MySQL版本号:
SELECT VERSION();
您应该能够在两个MySQL实例中看到不同的版本号。
总结:
通过安装和配置不同版本的MySQL,您可以在同一台机器上运行两个独立的MySQL实例。您需要为每个实例创建独立的数据目录和配置文件,并在启动MySQL服务时指定配置文件。这样,您就可以同时运行两个不同版本的MySQL,而且它们不会互相干扰。