A、从网上查询到主从服务器的配置
Sql代码
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
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
比较完整的代码可以参考://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命今行输入
Sql代码
mysql>s 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;
mysql>s 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",否则会出
Sql代码
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
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
可以得到这个数值,如果设置错误,会出错:
Sql代码
Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event
Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event
如果还是出错,可以尝试
1、重启主库
2、给从库重新授权
3、执行以下命令
slave s;
reset slave;
slave start;
看能不能解决。
本文标题:关于mysql主从配置的一些总结知识,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于11-17发布于北大青鸟鲁广校区。关于mysql主从配置的一些总结知识。
预约将免费领取7天课程体验卡
只为您方便就学
专业老师24小时1对1学习指导
定制专属于你的专属学习方案
微信号:17740513250
微信号:17740513250