mysql的配置文件(一般是my.cnf)
Aip:192.168.10.1
Bip:192.168.10.250
A:设置
1.增加一个用户最为同步的用户帐号:
grant all on *.* to gy@"192.168.10.250" identified by "1234"
2.增加一个数据库作为同步数据库:
create database backup
B:设置
1.增加一个用户最为同步的用户帐号:
grant all on *.* to gy@"192.168.10.1" identified by "1234"
2.增加一个数据库作为同步数据库:
create database backup
主从模式:A->B
A为master
修改Amysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=1
log-bin=c:\mysqlbak\mysqllog
#设置日志文件的目录,
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。
binlog-do-db=backup
重起数据库服务。
用show master status命令看日志情况。
B为slave
修改Bmysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=2
master-host=192.168.10.1
master-user=backup
master-password=1234
master-port=3306
master-connect-retry=60
replicate-do-db=backup
重起数据库
用show
注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。
双机互备模式。
如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。
在A的配置文件中mysqld配置项加入以下设置:
master-host=192.168.10.250
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中mysqld配置项加入以下设置:
log-bin=c:\mysql\log\mysqllog
binlog-do-db=backup
注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slavestart
重起AB机器,则可以实现双向的热备。
测试:
向B批量插入大数据量表AA(1872000)条
A数据库每秒钟可以更新2500条数据。
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
scp -r backup user@192.168.10.1:/var/lib/mysql/
STOP SLAVE; CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000098', MASTER_LOG_POS=22926865; START SLAVE;
数据量不大也可删除同步文件全部重新同步
rm -f mysqld-relay-bin.*
重新启动服务即可
出现ERROR 1201 (HY000): Could not initialize master info structure
mysql>
mysql>
Query OK,
mysql>