要求:公司打算建立一个新平台,和以前的数据库完全分开
环境:centos 6.0 X64
2台机器事先搭建好mysql
master:192.168.33.112
slave:192.168.33.113
在master上my.cnf配置文件里面添加参数
找到【mysqld】配置段在下面调价2个参数
log-bin = master112.bin #指定二进制日志产生的所有文件的基本名
server-id = 1 #指定服务器的ID,ID主从配置的必须不一样
添加一个复制用户(也就是slave用来连接master同步数据的账户)
mysql> create user rep_user;
mysql> grant replication slave on *.* to rep_user@'192.168.33.%' identified by '123456';
重启mysql(这一步一定要记得)
如果有多slave 最好多配置几个用户 这样如果想禁止某些slave的连接,只需要直接删除用户就可以了
在slave上的my.cnf配置文件的【mysqld】段
添加:
server-id = 2
relay-log = slave113-relay-bin #这段可以不要,默认的是主机名,我自己指定的是 slave113
重启mysql
登陆mysql运行如下命令
mysql> change master to
->master_host='192.168.33.112',
-> master_port=3307,
-> master_user='rep_user',
-> master_password='123456';
mysql> start slave;
mysql> show slave status\G # 如果没有报错的话就表示成功了
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.33.112
Master_User: rep_user
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: master112-bin.000002
Read_Master_Log_Pos: 206
Relay_Log_File: slave113-relay-bin.000006
Relay_Log_Pos: 255
Relay_Master_Log_File: master112-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
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: 206
Relay_Log_Space: 662
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.00 sec)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查看二进制日志里面有哪些事件:show binlog events\G; #默认查看的是第一个也就是xxxx-bin.000001
指定查看某个二进制文件日志:show binlog events in 'xxxxx-bin.000002'\G; #查看000002的日志文件
强制轮换二进制日志,从而等到一个完整的二进制日志文件:flush logs;