一 首先主服务器要开启bin-log日志,然后执行全备,打包把数据传到从服务器,
这时候要注意:1、
vi /etc/my.cnf
server-id = 1
log-bin = log
binlog-do-db = repldb //需要同步的数据库,如果没有本行,即表示同步所有数据库
binlog-ignore-db = mysql //被忽略的数据库 (最好加上这个因为从服务器一般设置为read)
在masters机上为slave机添加一同步账号
grant replication on *.* to 'rep'@'192.168.1.%' identified by '123456';
重启master机的mysql服务
如果从服务器是多少在通一个网段可以允许同一网段。
2、备份的时候记得锁表,(所以最好选择在凌晨或其他时候业务不太繁忙的时刻)
3、记录主服务器的2个状态
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 454 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
这是从服务器到主服务器上同步时需要知道的状态点。
二、把打包的数据导入从服务器的mysql,然后执行
l打开slave机中的my.cnf的配置文件,操作过程同master机一样
vi /etc/my.cnf,并添加如下字段
server-id = 2
master-host = 192.168.1.129
master-user = rep
master-password = 123456
master-port = 3306
master-connect-retry = 10 如果同步中断重新发起同步的时间。
然后重启slave机的mysql
进入mysql
mysql>change master to master_host='192.168.1.129',master_user='rep',master_password='123456',master_log_file='mysql-bin.000003', master_log_pos=454 ; 告诉从服务器从那里开始复制同步。 如果一主多从的情况可以写成脚本执行。
mysql>slave start ; 开启同步
mysql>show slave status\G; 查看同步信息
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.129
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 454 和主服务器备份时刻的时间一致
Relay_Log_File: mysqld-relay-bin.000013
Relay_Log_Pos: 599
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes 从服务器I/O运行正常
Slave_SQL_Running: Yes 从服务器sql运行正常
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 454
Relay_Log_Space: 900
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0 从服务器和主服务器延迟的时间
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.02 sec)
ERROR:
No query specifi
##########################
Slave_IO_Running: Yes 从服务器I/O运行正常
Slave_SQL_Running: Yes 从服务器sql运行正常
如果可以看到这2行说明主从复制已经运行正常。也要注意一下Seconds_Behind_Master: 0 从服务器和主服务器延迟的时间
。