怎么共同装两个mysql
时间 : 2023-03-20 20:51:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

如果你想在同一台服务器上托管多个 MySQL 数据库,你需要在服务器上安装和配置多个 MySQL 实例。在这篇文章中,我们将介绍如何在 Linux 系统上安装和配置多个 MySQL 实例。

步骤 1: 安装 MySQL

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

sudo apt-get update

sudo apt-get install mysql-server

在安装过程中,会提示你设置 MySQL root 用户的密码。设置好密码后,MySQL 就会自动启动。

安装完成后,可以通过以下命令检查 MySQL 是否正在运行:

sudo systemctl status mysql

如果 MySQL 正在运行,则会显示类似下面的输出:

● mysql.service - MySQL Community Server

Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

Active: active (running) since Tue 2020-10-13 12:00:20 UTC; 1h 23min ago

Main PID: 937 (mysqld)

Tasks: 36 (limit: 2321)

Memory: 684.3M

CGroup: /system.slice/mysql.service

└─937 /usr/sbin/mysqld

步骤 2: 复制 MySQL 配置文件

现在,我们需要复制 MySQL 的配置文件,以便为每个实例创建一个独立的配置文件。可以通过以下命令找到 MySQL 配置文件的位置:

sudo find / -name "my.cnf"

在我的系统上,MySQL 配置文件的位置是 `/etc/mysql/mysql.conf.d/mysqld.cnf`。

现在,将该文件复制到另一个位置:

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld2.cnf

步骤 3: 修改 MySQL 配置文件

现在,我们需要修改新复制的 MySQL 配置文件,以确保它使用不同的端口和数据目录。打开新的配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld2.cnf

然后,按照以下步骤更改配置:

1. 给 MySQL 实例分配一个新的端口。默认情况下,MySQL 使用端口 3306。我们可以在 `mysqld2.cnf` 文件中为新实例选择另一个端口,例如 3307。在 `[mysqld]` 部分添加以下行:

```

port = 3307

```

2. 指定新的数据目录。默认情况下,MySQL 的数据目录是 `/var/lib/mysql`。我们可以将该目录更改为新的目录,例如 `/var/lib/mysql2`。在 `[mysqld]` 部分添加以下行:

```

datadir = /var/lib/mysql2

```

3. 对于每个 MySQL 实例,都需要确保使用不同的 PID 文件。在 `[mysqld]` 部分添加以下行:

```

pid-file = /var/run/mysqld/mysqld2.pid

```

保存并关闭文件。

步骤 4: 创建新的数据目录

现在,我们需要创建新的数据目录。请确保你使用先前在 `mysqld2.cnf` 文件中指定的目录,即 `/var/lib/mysql2`。可以使用以下命令创建该目录:

sudo mkdir /var/lib/mysql2

sudo chown mysql:mysql /var/lib/mysql2

步骤 5: 初始化新的 MySQL 实例

现在,我们需要使用新的配置文件和数据目录初始化新的 MySQL 实例。使用以下命令启动初始化过程:

sudo mysqld --defaults-file=/etc/mysql/mysql.conf.d/mysqld2.cnf --initialize-insecure --datadir=/var/lib/mysql2/

这个命令将生成一个新的数据目录,并将 MySQL 数据库中的初始化数据加载到该目录下。由于我们使用了 `--initialize-insecure` 选项,因此不需要为 root 用户设置密码。

步骤 6: 修改文件权限

在继续之前,我们需要确保新的数据目录的文件权限已正确设置。使用以下命令修改目录和文件的权限:

sudo chown -R mysql:mysql /var/lib/mysql2/

sudo chmod -R 755 /var/lib/mysql2/

步骤 7: 启动新的 MySQL 实例

现在,我们可以启动新的 MySQL 实例。使用以下命令启动新的实例:

sudo systemctl start mysql@mysqld2.service

这个命令将通过 `mysqld2.cnf` 文件中指定的端口和数据目录启动新的实例。

步骤 8: 测试新的 MySQL 实例

现在,我们可以测试新的 MySQL 实例是否正常工作。可以使用以下命令测试 MySQL 连接:

mysql -u root -P 3307 -h 127.0.0.1

这会使用指定的端口连接到 MySQL 实例,并在成功连接后显示 MySQL 提示符。

现在,你可以像通常使用 MySQL 一样为新的实例创建数据库和用户,同时设置相应的权限。

总结

在同一台 Linux 服务器上安装并配置多个 MySQL 实例可能是一项复杂而棘手的任务。本文提供了一些有用的步骤和提示,以帮助你创建和配置多个 MySQL 实例。

如果你需要在同一台服务器上运行多个 MySQL 实例,你可以通过以下两种方法来实现。

第一种方法是使用不同的端口号运行每个 MySQL 实例。在默认情况下,MySQL 使用 3306 端口。如果你想在同一台服务器上运行多个 MySQL 实例,你需要指定不同的端口号。你可以通过修改 my.cnf 文件来完成这个设置。具体操作如下:

1. 复制 my.cnf 文件,例如复制文件到 /etc/my2.cnf

cp /etc/mysql/my.cnf /etc/mysql/my2.cnf

2. 编辑 my2.cnf,修改以下配置项:

# 原来的配置

port = 3306

# 新的配置,端口号自定义

port = 3307

3. 启动 MySQL 实例,指定 my2.cnf 作为配置文件。

mysqld --defaults-file=/etc/mysql/my2.cnf --user=mysql --datadir=/var/lib/mysql2 --socket=/var/run/mysqld/mysql2.sock --port=3307

第二种方法是使用不同的套接字文件运行每个 MySQL 实例。在默认情况下, MySQL 使用 `/var/run/mysqld/mysqld.sock` 文件作为套接字文件。如果你想在同一台服务器上运行多个 MySQL 实例,你需要指定不同的套接字文件。你可以通过修改 my.cnf 文件来完成这个设置。具体操作如下:

1. 复制 my.cnf 文件,例如复制文件到 /etc/my2.cnf

cp /etc/mysql/my.cnf /etc/mysql/my2.cnf

2. 编辑 my2.cnf,修改以下配置项:

# 原来的配置

socket = /var/run/mysqld/mysqld.sock

# 新的配置,套接字文件路径自定义

socket = /var/run/mysqld/mysql2.sock

3. 启动 MySQL 实例,指定 my2.cnf 作为配置文件。

mysqld --defaults-file=/etc/mysql/my2.cnf --user=mysql --datadir=/var/lib/mysql2 --socket=/var/run/mysqld/mysql2.sock

无论哪种方法,你需要为每个 MySQL 实例指定不同的数据目录,确保它们不会互相干扰。在上面的例子中,数据目录分别为 `/var/lib/mysql` 和 `/var/lib/mysql2`。

总之,在同一台服务器上运行多个 MySQL 实例可以帮助你更好地管理数据,但这也会增加服务器负载和资源消耗。所以,你需要根据你的需要权衡利弊,并确保服务器具有足够的资源来运行多个 MySQL 实例。