设置MySQL数据库复制

我正在尝试设置MySQL数据库复制,看起来非常简单。

我正在使用本教程: http : //www.howtoforge.com/mysql_database_replication

现在,我为一个非常大的网站运行一个相当大的MySQL数据库,在本教程中,它要求我重新启动MySQL,以便在/etc/my.cnf文件中应用新的设置。

我尽力避免这一步骤,因为我知道重新启动MySQL可能需要几分钟时间(由于大型日志/数据库),我不想要任何停机时间。

有没有办法在没有完全重新启动Mysql的情况下应用必要的设置?

my.cnf许多设置可以在MySQL中用SET GLOBAL 。 例如:

 mysql> SET GLOBAL log_slow_queries = On; 

但有些是只读的MySQL内部; log-bin就是其中之一。

 mysql> set global log_bin = foo; ERROR 1238 (HY000): Variable 'log_bin' is a read only variable 

你需要添加新的数据库到现有的数据库或合并两个现有的数据库服务器? 如果您需要添加新的服务器,请检查您的服务器是否通过命令“show master status”在生产服务器上收集binlog。 您将需要在新服务器上设置服务器标识(它不能是1,因为1是默认的服务器标识,并在“旧”服务器上使用)。 还要检查你的“旧”服务器在真实接口上侦听。 如果“旧”服务器仅使用127.0.0.1,则需要重新启动服务器,因为您无法在运行服务器上更改监听和ID参数而无需重新启动。 所有其他的复制参数都可以通过“set global”命令来更改,但是我强烈build议在my.cnf中设置它,以避免旧服务器重新启动时出现问题。