首页 >> 工具知识

mysql命令-mysqld_multi

mysqld_multi 是 MySQL 官方提供的多实例管理工具,允许在单台服务器上运行多个独立的 MySQL 实例,每个实例监听不同的端口和套接字文件。以下是核心要点和操作指南:

一、核心原理与配置

  1. 配置文件结构
    在 my.cnf 中定义 [mysqld_multi] 全局管理段和多个 [mysqldN] 实例段(N 为实例编号):
  • 全局段:指定 mysqld_safemysqladmin 路径及管理账号。

  • 实例段:为每个实例设置独立参数(datadirportsocketserver-id)。

  • [mysqld_multi]
    mysqld = /usr/bin/mysqld_safe
    mysqladmin = /usr/bin/mysqladmin
    user = multi_admin   
    # 管理账号
    [mysqld1]
    datadir = /data/mysql1
    port = 3306
    socket = /tmp/mysql1.sock
    server-id = 1
    [mysqld2]
    datadir = /data/mysql2
    port = 3307
    socket = /tmp/mysql2.sock
    server-id = 2
    
  1. 关键配置项

  2. datadir:实例数据目录,必须唯一。

  3. port 和 socket:避免端口或文件冲突。

  4. server-id:主从复制时需全局唯一 。

二、操作流程

  1. 初始化数据目录

  2. 为每个实例执行初始化,确保目录权限属主为 mysql

  3. mysql_install_db --user=mysql --datadir=/data/mysql1
    mysql_install_db --user=mysql --datadir=/data/mysql2
    chown -R mysql:mysql /data/mysql1 /data/mysql2
    
  4. 启动/停止实例

  5. 启动实例1:mysqld_multi start 1

  6. 停止实例1-3:mysqld_multi stop 1-3

  7. 查看状态:mysqld_multi report

  8. 连接指定实例

  9. 通过端口或套接字连接:

  10. mysql -uroot -p -P3307 -S /tmp/mysql2.sock
    

三、高级应用

  1. 主从复制配置

  2. 主库:启用 log-bin 并创建复制账号。

  3. 从库实例:在 [mysqldN] 中添加:

  4. master-host = 主库IP
    master-port = 主库端口  
    # 同机多实例需区分端口
    master-user = 复制账号
    master-password = 密码
    
  5. 执行 CHANGE MASTER TO 指定主库信息

  6. 管理账号授权

  7. 为安全关闭实例,需授予 multi_admin 账号 SHUTDOWN 权限:

  8. GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY '密码'
    

四、常见问题

  1. 启动失败排查

  2. 检查 my_print_defaults 路径是否存在,缺失时需软链接:

  3. ln -s /usr/local/mysql/bin/my_print_defaults /usr/bin/
    
  4. 查看实例错误日志(如 /data/mysql1/error.log

  5. 注意事项

  6. 各实例的 server-id 和 datadir 必须唯一。

  7. 同机主从复制时,从库的 master-host 建议用 127.0.0.1 而非 localhost 。

五、管理优化

  1. 系统服务集成

  2. 复制 mysqld_multi.server 到 /etc/init.d/,通过 service 命令管理:

  3. cp /usr/share/mysql/mysqld_multi.server /etc/init.d/mysqld_multi
    chkconfig --add mysqld_multi
    service mysqld_multi start 1
    
  4. 局限性

  5. 原生不支持实例状态监控(仅 report 显示运行与否),需结合 mysqladmin 或自定义脚本 。

所有评论

最新文章
20.5 性能优化建议2026-05-08
20.4 复杂查询实现2026-05-08
20.3 表创建与数据初始化2026-05-08
20.2 数据库设计2026-05-08
20.1 项目需求分析:博客系统2026-05-08
19.4 自动化备份策略2026-05-08
19.3 导出和导入数据2026-05-08
19.2 恢复备份数据2026-05-05
19.1 使用mysqldump备份数据2026-05-05
18.4 实战:开发简单的学生管理系统2026-05-05
关于我 备案号:蜀ICP备2023042032号-1