MySQL 建两个实例

MySQL 是一个流行的开源关系型数据库管理系统,广泛应用于各种应用程序中。有时,我们可能需要在一台服务器上运行多个 MySQL 实例,以实现资源隔离、负载均衡或多租户部署。本文将介绍如何在一台服务器上创建两个 MySQL 实例,并提供相应的代码示例。

旅行图

在开始之前,让我们通过一个旅行图来了解整个过程:

创建两个 MySQL 实例
准备阶段
准备阶段
step1
step1
step2
step2
创建实例
创建实例
step3
step3
step4
step4
启动实例
启动实例
step5
step5
step6
step6
验证
验证
step7
step7
step8
step8
创建两个 MySQL 实例

环境准备

在开始之前,请确保您的服务器上已安装 MySQL。如果尚未安装,可以通过以下命令安装:

sudo apt-get update
sudo apt-get install mysql-server
  • 1.
  • 2.

安装完成后,停止 MySQL 服务:

sudo systemctl stop mysqld
  • 1.

创建实例

第一个实例
  1. 创建一个新的配置文件 /etc/mysql/my.cnf.d/instance1.cnf

    sudo nano /etc/mysql/my.cnf.d/instance1.cnf
    
    • 1.
  2. 在该文件中添加以下内容:

    [mysqld]
    port=3307
    socket=/var/run/mysqld/mysqld1.sock
    datadir=/var/lib/mysql1
    log-error=/var/log/mysql1/error.log
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
  3. 保存并退出。

第二个实例
  1. 创建一个新的配置文件 /etc/mysql/my.cnf.d/instance2.cnf

    sudo nano /etc/mysql/my.cnf.d/instance2.cnf
    
    • 1.
  2. 在该文件中添加以下内容:

    [mysqld]
    port=3308
    socket=/var/run/mysqld/mysqld2.sock
    datadir=/var/lib/mysql2
    log-error=/var/log/mysql2/error.log
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
  3. 保存并退出。

启动实例

启动第一个实例
  1. 启动 MySQL 服务:

    sudo systemctl start mysqld
    
    • 1.
  2. 确保第一个实例正在运行:

    sudo systemctl status mysqld
    
    • 1.
启动第二个实例
  1. 使用 mysqld_safe 命令启动第二个实例:

    sudo mysqld_safe --defaults-file=/etc/mysql/my.cnf.d/instance2.cnf &
    
    • 1.
  2. 确保第二个实例正在运行:

    ps aux | grep mysqld
    
    • 1.

验证

连接到第一个实例
  1. 使用以下命令连接到第一个实例:

    mysql -u root -p -P 3307
    
    • 1.
  2. 输入密码并执行 SQL 查询。

连接到第二个实例
  1. 使用以下命令连接到第二个实例:

    mysql -u root -p -P 3308
    
    • 1.
  2. 输入密码并执行 SQL 查询。

类图

以下是 MySQL 实例的类图:

MySQLInstance +port int +socket string +datadir string +log_error string MySQLInstance1 0..1 -- MySQLServer MySQLInstance2 0..1 -- MySQLServer

结论

通过本文,我们学习了如何在一台服务器上创建两个 MySQL 实例。这有助于实现资源隔离、负载均衡或多租户部署。希望本文对您有所帮助。如果您有任何问题或需要进一步的帮助,请随时联系我们。