您的位置:首页 > 数据库 > MySQL

mysql 主从同步

2011-05-16 14:31 375 查看
打开主机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 #不需要备份的数据库,多个写多行

mkdir /var/log/mysql

touch /var/log/mysql/mysql-bin.log

chown mysql:mysql /var/log/mysql -R

#授权从服务器

GRANT REPLICATION SLAVE ON *.* TO 'cdndns'@'116.28.64.167' IDENTIFIED BY 'cdndns';

打开从机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 #不复制某个库

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

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

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

在主机A中,mysql>show master status/G;

在从机B中,mysql>show slave status/G;

能看到大致这些内容

File: mysql-bin.000001

Position: 1374

Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

注:如果在slave上误删除了一个表等记录等,数据库会停止复制,这样就会有影响,所以不要再从服务器上做操作,

show slave status/G

Last_Errno: 1051

Last_Error: Error 'Unknown table 'tt'' on query. Default database: 'radius'. Query: 'drop table tt'

解决在slave上执行

slave stop;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; #跳过1条错误

start slave;

查看 /var/log/mysqld.log 日志有用

或许有用

slave stop;

reset slave;

start slave;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: