动手篇 | 同一主机上启动多台MySQL服务器

2023年 9月 27日 55.3k 0

本文转自徐老师,正文如下:

在同一个物理主机上启动多台MySQL服务器,通常也称为单机多实例。部署单机多实例可以用于测试新版本的功能、测试复制功能、高可用性等目的。用户可以通过启动mysqld或者mydqld_safe并指定不同的配置文件来启动,例如,

    mysqld --socket=/mysql/socket1 --port=3306 --datadir=/mysql/data1
    mysqld --socket=/mysql/socket2 --port=3307 --datadir=/mysql/data2

    例如,创建一个配置文件my.cnf1,内容如下:

      [mysqld]


      socket=/mysql/socket1
      port=3306
      datadir=/mysql/data1

      通过mysqld_safe启动MySQL实例,

        mysqld_safe --defaults-file=/mysql/my.cnf1

        用户也可以使用mysqld_multi管理多个相似的服务器。通过mysqld_muiti管理同一主机上的多个MySQL服务器时,每个mysqld进程通过主机的不同socket文件或TCP/IP端口等监听连接,在配置文件中通过[mysqldN]对每个MySQL服务器进行配置,例如,[mysqld1],[mysqld2]。

        配置文件的示例如下:

          [mysqld1]
          user=mysql
          datadir=/mysql/data1
          port=3306
          socket=/mysql/socket1


          [mysqld2]
          user=mysql
          datadir=/mysql/data2
          port=3307
          socket=/mysql/socket2

          启动时使用如下命令,

            mysqld_multi --defaults-file=multi.cnf start 1,2

            此外用户通过systemd服务管理器可以管理多个服务实例。服务管理器通过mysqld@.service配置文件管理多个MySQL服务器实例。配置文件的示例如下:

              [mysqld@replica01]
              datadir=/var/lib/mysql-replica01
              socket=/var/lib/mysql-replicaa01/mysql.sock
              port=3306
              log-error=/var/log/mysqld-replica01.log
              [mysqld@replica02]
              datadir=/var/lib/mysql-replica02
              socket=/var/lib/mysql-replicaa02/mysql.sock
              port=3307
              log-error=/var/log/mysqld-replica02.log

              启动时,使用如下命令:

                systemctl start mysqld@replica01

                查看全部实例状态时,可以使用如下命令:

                  systemctl status mysqld@replica*

                  注意,配置多个实例时需要注意如下选项必须唯一:

                  • 数据路径--datadir必须为不同的实例指定不同的位置。

                  • 连接层--port、 --socket等选项的值必须唯一。

                  • 日志文件和PID文件,默认情况下这类文件保存在数据路径下,如果用户使用其他值则需要为--log-error等日志文件选项和--pid-file指定唯一值。

                  需要注意,每个TCP/IP端口(IP地址+端口)只能监听一个MySQL实例,如果用户在同一主机上使用相同端口运行两个MySQL实例,需要为其绑定不同的IP地址,例如,两个实例端口同样为3306,其中一个使用bind-address 127.0.0.1,另外一个bind-address 192.168.1.16。

                  以上内容是关于MySQL如何配置单机多实例的介绍。

                  文章至此。

                  相关文章

                  Oracle如何使用授予和撤销权限的语法和示例
                  Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
                  下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
                  社区版oceanbase安装
                  Oracle 导出CSV工具-sqluldr2
                  ETL数据集成丨快速将MySQL数据迁移至Doris数据库

                  发布评论