如何在一台服务器上运行多个版本的 MySQL?这是在运行 SUSE Enterprise Server 10 的服务器上。MySQL v5.0.45 的初始安装是通过 RPM 完成的。现在我被要求设置第二个运行 5.1.36 版本的 MySQL,以便与前一个版本同时运行。我已经下载了 MySQL v5.1.36 二进制分发版的 tarball。
我正在寻找有关如何设置它的具体信息以及有关管理两个不同版本的任何建议。我有一个 my.cnf 还是多个?我应该将它们保存在 /etc 中还是保存在每个 MySQL 实例的 basedir 中?启动和关闭两个服务器的最佳方法是什么?等等?
答案1
它运行良好。只需指定单独的 conf、port、sock 等。就我个人而言,我可能会为各个服务器设置维护一个/etc/my.server1.cnf
和/etc/my.server2.cnf
。对于启动,只需复制/etc/init.d/mysqld
(或任何对 Suse 的调用),只需更新一些变量即可使新脚本启动第二台服务器。
答案2
您可以使用 mysqlmanager 或 mysqld_multi。mysqlmanager 功能更强大,但 mysqld_multi 设置起来更容易,而且通常是我的选择
你只需要一个像这样的 /etc/my.cnf(来自 mysql 手册):
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user = multi_admin
password = multipass
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
datadir = /usr/local/mysql/var2
[mysqld3]
socket = /tmp/mysql.sock3
port = 3308
datadir = /usr/local/mysql/var3
[mysqld4]
# ...