1.主机配置
找到主机Mysql的配置文件my.cnf(windows为my.ini),一般在/etc/my.cnf路径下。
这里以centos7为例(vim为编辑打开文件命令):
点击INSET进入编辑模式,修改配置文件;
server-id=1(唯一id);
log-bin=mysql-bin(开启mysql日志文件);
binlog-do-db=test (指定需要日志的数据库);
binlog_format=MIXED(指定记录日志模式为MIXED);
重启主机MySQL服务;
在主机MySQL中创建用来同步的账户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username为账户名称;
host为从机IP地址;
password为账户密码;
对创建好的账户进行授权:
GRANT replication slave ON *.* TO 'username'@'host'
username为账户名称;
host为从机IP地址;
然后执行:flush privileges;(刷新用户权限)
显示主机日志情况:show master status;
记录下相应File和Position;
2.从机配置
在从机配置文件(my.cnf(windows为my.ini)和主机相同)添加:
重启从机MySQL服务;
配置从机MySQL:
登录从机MySQL后进行如下配置:
change master to
master_host='192.168.0.254',//主机IP地址
master_port=3306,//主机MySQL端口号
master_user='replication',//之前创建的同步账号
master_password='replication',//同步账号的密码
master_log_file='mysql-bin.000010',//日志文件名,与之前主机查出来的对应
master_log_pos=5087;//与之前主机查出的Positin对应
启动从机:start slave;
查看同步状态:show slave status \G
这两个配置项为Yes则配置成功。
windows配置和CentOS7一样,只是配置的文件换位my.ini。
常见问题:
1.连接不上CentOS7的MySQL或者ping不通CentoOS7:
更改防火墙,CentOS7默认的防火墙不是iptables,而是firewalle。
#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld
开启
systemctl unmask firewalld
安装iptables-services
yum install iptables-services
设置开机启动
systemctl enable iptables
systemctl [stop|start|restart] iptables
#or
service iptables [stop|start|restart]
service iptables save
#or
/usr/libexec/iptables/iptables.init save
查看iptables防火墙状态
service iptables status
开启: service iptables start
关闭: service iptables stop
CentOS7默认开启22端口,我们还需配置开启3306端口;
通过 vim /etc/sysconfig/iptables 命令编辑防火墙,添加端口
按照22端口的格式添加自己需要的端口:
通过 systemctl restart iptables.service 命令重启防火墙使配置生效;
通过 systemctl enable iptables.service 命令设置防火墙开机启动;