Ubuntu 14.04 MySQL同步
主服务器:192.168.2.212
从服务器:192.168.2.211
主服务器(192.168.2.212):
先到/etc/mysql/my.cnf下 将
bind-address 127.0.0.1
注释掉
#bind-address 127.0.0.1
允许非本机访问。
登陆mysql
mysql -uroot -p
grant replication slave,reload,super on *.* to slave@192.168.2.211 identified by '123456'
可以在从服务器(192.168.2.211)远程测试一下
mysql -uslave -h192.168.2.212 -p
修改主服务器my.cnf
sudo nano /etc/mysql/my.cnf
以下内容必须在[mysqld]模块中
server-id=1 log_bin=/var/log/mysql/mysql-bin.log binlog_do_db=ccs binlog_ignore_db=mysql
do_db和ignore_db分别是同步的数据库和不同步的数据库,有多条就写多行。
重启mysql
sudo /etc/init.d/mysql restart
进mysql
mysql -uroot -p
show variables like 'log%';
log_bin应该为ON
show master status;
则能看到对应得file position 信息,这些在从机设置的时候要用到。
从服务器(192.168.2.211):
配置my.cnf
server-id=2 log_bin=/var/log/mysql/mysql-bin.log replicate_do_db=ccs
重启mysql
sudo /etc/init.d/mysql restart
进mysql:
mysql -uroot -p
stop slave;
然后设置从master复制日志配置
CHANGE MASTER TO MASTER_HOST='192.168.2.212', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=277, MASTER_CONNECT_RETRY=10;
LOG_FILE和LOG_POS则是在master下show master status时候看到的file position信息。
CONNECT_RETRY是每次重连的时间间隔
start slave;
show slave status\G
在出现的信息中找到 Slave_IO_Running/Slave_SQL_Running ,都为YES则成功了。