准备两个mysql 放在两台服务器上 ,mysql
修改/etc/my.cnfsql
主库增长数据库
server-id=1 log-bin=log #指定能够被复制的数据库名称 binlog-do-db=test01
从库增长服务器
server-id=2 replicate-do-db=test01
建立一个从库用于链接主库进行复制binlog的远程帐户 code
GRANT REPLICATION SLAVE,FILE ON *.* TO '帐户'@'从库ip' IDENTIFIED BY '密码';
在mysql5.5以后 从库配置文件my.cnf 中对主库的配置开始不受支持了 server
例如blog
master-host=主库ip master-user=帐户 master-password=密码
这种配置方式启动时会报错 , 不能识别master-XXX 的错误 ip
须要用下面的方式配置同步
CHANGE MASTER TO MASTER_LOG_FILE='log.000001',MASTER_HOST="主库ip", MASTER_PORT=3306, MASTER_USER="远程帐户", MASTER_PASSWORD="密码" , MASTER_LOG_POS=823 ;
pos 和log_file 须要在主库中查询 在主库中执行 show master status;ast
配置完成后 start slave; 在从库中启动 show slave status\G; 查看状态
标记红框位置为yes 表明成功 此时从数据库信息已经同步
可能遇到的问题
主从不能同步:
show slave status;报错:Error xxx dosn't exist
且show slave status\G:
Slave_SQL_Running: NO
Seconds_Behind_Master: NULL
解决方法:
stop slave; set global sql_slave_skip_counter =1 ; start slave;
以后Slave会和Master去同步 主要看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master是否为0,0就是已经同步了
此时在主库中插入后从库自动同步