mysql master host_MySQL5.5.28配置master-maser复制,master-host等参数不用了

今天在测试环境中配置两个MySQL的复制,按照以前的方法,修改my.cnf之后启动,报错:

[root@XXXX ~]# /etc/init.d/mysql restart

ERROR! MySQL server PID file could not be found!

Starting MySQL......................................................................................................... ERROR! The server quit without updating PID file (/var/lib/mysql/XXXX.pid).

[root@XXXX ~]#

查看log,发现下面信息:

130418  6:15:52 [ERROR] /usr/sbin/mysqld: unknown variable 'master-host=x.x.x.x'

130418  6:15:52 [ERROR] Aborting

网上查了一下,才发现是MySQL5.5之后有了变化。有些参数不用了。官方文档如下:

Obsolete options. The following options are removed in MySQL 5.5. If you attempt to start mysqld with any of these options in MySQL 5.5, the server aborts with an unknown variable error. To set the replication parameters formerly associated with these options, you must use the CHANGE MASTER TO ... statement (see Section 13.4.2.1, “CHANGE MASTER TO Syntax”).

The options affected are shown in this list:

--master-host

--master-user

--master-password

--master-port

--master-connect-retry

--master-ssl

--master-ssl-ca

--master-ssl-capath

--master-ssl-cert

--master-ssl-cipher

--master-ssl-key

查找的时候,发现有篇文章不错,留作参考(原文没有说明不给转载啊)。原址如下:

MySQL 复制配置双机互为主从

A B 为两台 MySQL 服务器,均开启二进制日志,数据库版本 MySQL 5.5。

在两台服务器上编辑配置文件,以下配置添加到[mysqld]

一、服务器参数

[A 服务器 192.168.1.100]

server-id = 1

binlog-do-db = test

binlog-ignore-db = mysql

replicate-do-db = test

replicate-ignore-db = mysql

sync-binlog = 1

[B 服务器 192.168.1.101]

server-id = 2

binlog-do-db = test

binlog-ignore-db = mysql

replicate-do-db = test

replicate-ignore-db = mysql

sync-binlog = 1

二、操作步骤

# A B 服务器停止同步

STOP SLAVE;

# A B 服务器清空MASTER日志

RESET MASTER;

# A B 服务器清空SLAVE日志

RESET SLAVE;

# A 服务器授权同步账户 (我们会同步一次复制数据库文件,所以授权为192.168.1%)

GRANT REPLICATION SLAVE ON *.* TO 'master_slave'@'192.168.1%' IDENTIFIED BY 'master_slave123!@#';

FLUSH PRIVILEGES;

# A 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)

FLUSH TABLES WITH READ LOCK;

# 如果使用SSH,需要重新开启,复制数据库文件。

tar -cvf /tmp/mysql-data.tar /www/mysql

tar -xvf /tmp/mysql-data.tar -C /

# 查看 A 服务器主机状态(记录二进制开始文件,位置)

SHOW MASTER STATUS;

# B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)

FLUSH TABLES WITH READ LOCK;

# 修改 B 服务器配置 (修改为A服务器的主机状态)

CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='master_slave', MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106;

# 开启 B 服务器同步进程

START SLAVE;

# 查看 B 服务器同步状态是否正常

SHOW SLAVE STATUS;

# 查看 B 服务器主机(记录二进制开始文件,位置)

SHOW MASTER STATUS;

# 修改 A 服务器配置 (修改为B服务器的主机状态)

CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='master_slave',MASTER_PASSWORD='master_slave123!@#',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=106;

# 开启 A 服务器同步进程

START SLAVE;

# 分别查看 A B 服务器同步状态,确定是否成功

SHOW SLAVE STATUS;SHOW MASTER STATUS;

# 解锁 A B 服务器

UNLOCK TABLES;

# 数据测试分别在 A B 服务器上创建表插入数据测试

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`value` varchar(100) DEFAULT '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `test` VALUES ('1', 'Hello');

注意:

1. 数据库目录下的master.info的内容会覆盖命令行或my.cnf中指定的部分选项,更改配置需删除master.info

2. my.cnf中的master配置在MySQL 6.0以后会取消,官方建议使用动态的CHANGE MASTER

3. 如果只指定ignore-db而不指定do-db。则新创建数据库的操作也会同步。

互为同步配置实例:

1. A B 互为主从同步test, 不同步mysql:

两个数据库配置中均设置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql

2. A B 互为主从只同步test,不同步其他数据库,新创建的也不会同步

两个数据库配置中均设置:binlog-do-db=test,replicate-do-db=test

3. A B 互为主从不同步mysql, 同步其他数据库,譬如创建的新数据库也会同步

两个数据库配置中均设置:binlog-ignore-db=mysql,replicate-ignore-db=mysql

4. A B 互为主从同步所有数据库,包括新建的数据库 两个数据库配置中均不设置上述四项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值