我需要为我们的一位客户在同一主机上设置多个 MySQL 实例。据我所知,我可以选择:
mysqld_multi
- MySQL 沙盒
这应该是企业级生产环境的长期解决方案。
我们需要将当前使用具有主动/被动节点的 RedHat 集群的现有环境迁移到没有集群软件的新 VM(将使用 VMware HA 解决方案,我知道它会有所不同)。
有 3 个独立的 MySQL 实例/集群资源。我不知道这种分离的最初动机,但我想客户希望能够自主地停止/启动(补丁、升级......)不同的资源。
任何意见和建议 - 优点,缺点和现实世界的经验都非常欢迎!
为了回答您关于如何设置的直接问题,我和 Randy Melder 在 2011 年 5 月 31 日解决了这个问题。
DTest 和 Laurynas Biveinis 最近回答了这个问题(2011 年 9 月 20 日)。
如今,有些人对它的使用发誓。
多年前,mysql 曾经提供一个名为的脚本
safe_mysqld
,它使拥有多个 mysql 实例变得简单。您所做的只是在您想要的任何端口上为 what 实例创建一个 my.cnf。然后调用:MySQL 停止分发 safe_mysqld 以支持 mysqld_multi。
但是,我已经学会了如何使用 mysqld_safe。信不信由你,因为了解 mysqld_safe,我实际上早在 2011 年 2 月就编写了自己的 mysql 多实例引擎。它现在正与我雇主的许多客户一起投入生产使用。这是我的做法:
首先,将这个服务引擎命名为 /etc/init.d/mysqlservice
接下来,为特定端口创建 mysql 实例文件。
例如,这里是服务 mysql3307
确保 mysql 实例文件的 PORT_NUMBER 中定义的端口号介于 3307 和 3399 之间。
由于 mysql 实例文件调用 mysqlservice,请注意 mysqlservice 将检查特定端口的配置文件。
对于 mysql3307,mysqlservice 会查找 /etc/my3307.cnf。
确保您在 /etc/my3307.cnf 中明确定义了以下内容
datadir 和 socket 可以在您选择的位置。
要创建 mysql3308 和其他服务,遵循相同的范例,但使用始终定义的确切端口号。
试试看 !!!
此链接可能会有所帮助: