db / 未分类 · 2013年1月29日

mysql主从 replication同步–pass

主 192.168.1.11
从 192.168.1.12
1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加
server-id=1
log-bin=binlog_name # 可以自己命名
#bin-log 放在
#eg 这个是我的例子
## by evan
server-id=1
log-bin=mysql-bin

2、主库增加用户,用于从库读取主库日志。
grant replication slave,reload,super on *.* to 'slave'@'192.168.1.12' identified by '123456'; # good 这个比较好 这两个选择一个
grant all on *.* to 'slave'@'192.168.1.12' identified by '123456';
select user,host from mysql.user;
show master status;

+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 233 | | |
+——————+———-+————–+——————+
3、从库连接主库进行测试。mysql -u slave -p123456 -h 192.168.1.11
4、停从库,修改从库/etc/my.cnf,增加选项: 记得pid 一般安装上的 默认是1
[mysqld]
## by evan
log-bin=mysql-bin
server-id=2 #其实只有这个是必要的
master-host=192.168.1.11 #这个在5.5加上会报错呢
master-user=slave
master-password=123456

5、启动从库,进行主从库数据同步
/etc/init.d/mysqld restart #restart mysqld
mysql -u root -p
mysql >load data from master; #不是一定要的

说明:这一步也可以用数据库倒入或者直接目录考过来。
#on mysql slave cli
stop slave;
change master to master_host='192.168.1.11',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=233;
start slave;
show slave status\G;

6 进行测试:
主库创建表,
mysql> create database evan;
Query OK, 1 row affected (0.00 sec)
mysql; use evan;
Database changed
mysql>; create table new (name char(20),phone char(20));
Query OK, 0 rows affected (0.07 sec)
mysql>; insert into new values('abc,'0532555555');

报错 Slave_IO_Running: No 以及最下面是
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
#删除多余的my.cnf就可以 find / -name "my.cnf"
server_id 与主的一样导致
http://www.jb51.net/article/27242.htm
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Client requested master to start replication from impossible position’
后面我在主删除一个database 竟然就好了 好怪