centos7配置mysql主从服务器

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

你可能感兴趣的:(centos7配置mysql主从服务器)