1.将这两台IP授权,允许其它IP通过账号密码进行访问(如添加个admin账号允许所有外部IP以密码123456访问),分别登录进两台机子的mysql执行如下语句
#mysql -u root -p
mysql> Grant all privileges on . to ‘admin’@’%’ identified by ‘123456’ with grant option;
mysql> Flush privileges;
mysql> exit;
①上述代码的意思是创建一个admin用户,host=%,允许所有IP通过用户名admin进行访问。添加完刷新权限。
②此时两台机子的mysql应该是可以相互访问的,如果不可以,导致的原因有很多,最常见的是防火墙没关(关闭防火墙,或开放3306端口),mysql服务器绑定了本地地址(更改my.cnf文件,把bind-address注释掉)。
#vi /etc/my.cnf
2.主服务器修改my.cnf(/etc/mysql/my.cnf)文件,在[mysqld]下面增加下面几行代码
#vi /etc/mysql/my.cnf
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
补充:
binlog-do-db=db1
binlog-ignore-db=mysql
#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID,一般取IP最后一段
server-id=134
保存后重启mysql(systemctl restart mysqld.service)
#systemctl restart mysqld.service
注:如果只需要同步特定的库,如上添加代码,binlog-do-db =admin #用于master-slave的具体数据库
3.进入mysql后,查看主服务器mysql master状态,日志File为master-bin.000001,Position为120(记下这两个值,后面进行从服务器操作的时候需要用到)
mysql -u root -p
mysql> show master status;
4.配置从服务器
#vi /etc/my.cnf
在[mysqld]下面增加下面几行代码(server-id跟主服务器不要相同了)
server-id=10
log-bin=master-bin
log-bin-index=master-bin.index
重启mysql
#systemctl restart mysqld.service
5.添加从(读)服务器跟随主(写)服务器
#mysql -u root -p
mysql> change master to
master_host='112.74.106.195',
master_user='admin',
master_password='123456',
master_port=3306,
master_log_file='master-bin.000001',
master_log_pos=120;
6.启动slave
mysql> start slave;
停止
mysql> stop slave;
7.查看slave状态
mysql> show slave status\G
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
注:本文参考http://bbs.it-home.org/thread-70357-1-1.html