mysql主从配置日志

公司有两台数据库要配置主从服务器,配置日志如下



A、从网上查询到主从服务器的配置

1、先登录主机 A

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;

赋予从机权限,有多台丛机,就执行多次

2、 打开主机A的my.cnf,输入

server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db=mysql #不需要备份的数据库,多个写多行

3、打开从机B的my.cnf,输入

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

4、同步数据库

有多种方法,我说最笨的一种,先mysqldump导出主机A的数据test为 test.sql

然后在,从机B上建立数据库test,mysql导入 test.sql到test库中

5、先重启主机A的mysql,再重启从机B的mysql

 比较完整的代码可以参考:http://www.linuxdiyf.com/viewarticle.php?id=111071

配置到这一步之后,出现问题,主机A可以启动,但是主机B没办法启动,查看mysql的错误日志,主要出错语句为

unknown variable 'master-host=192.168.0.1' 

经过搜索,mysql从5.1之后已经不支持master-host的配置

将以master开头的那几行注释掉,在mysql命今行输入

mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_HOST=’prod_master’, MASTER_USER=’slave_user’, MASTER_PASSWORD=’‘, 
MASTER_LOG_FILE=’mysql-bin.0xx‘, MASTER_LOG_POS=33421;
mysql>start slave;

注意:这里的MASTER_LOG_FILE就是/var/log/mysql/目录下的文件的名字,一般为mysql-bin.000001,

不能写成"/var/log/mysql/mysql-bin.000001",否则会出

 Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

 的错误。

MASTER_LOG_POS 指的是文件读取住置,

这个数值可以通过查询主服务器的数据来设定

mysql> show master status

可以得到这个数值,如果设置错误,会出错:

 Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event

如果还是出错,可以尝试

1、重启主库

2、给从库重新授权

3、执行以下命令

slave stop; 
reset slave; 
slave start;

看能不能解决。

猜你喜欢

转载自lihuachuan.iteye.com/blog/1728279