准备两台mysql服务器。主库称为master,从库称为slave。这节课只需要操作主库(192.168.127.138)
1、master: 192.168.127.138
2、slave: 192.168.127.145
在主库服务器开放指定的3306端口号
xxxxxxxxxx
firewall-cmd --zone=public --add-port=3306/tcp -permanent
firewall-cmd -reload
或者在主库服务器直接把防火墙关掉(我们推荐使用这种,不使用上面开放3306端口的方式)
xxxxxxxxxx
systemctl stop firewalld
systemctl disable firewalld
检查一下主库的mysql的服务是否开启
xxxxxxxxxx
systemctl status mysqld
打开192.168.127.138。这节课只讲主库的配置。从库的操作在下节课
1、修改配置文件 /etc/my.cnf
xxxxxxxxxx
#mysql服务ID,保证整个集群环境中唯一,取值范围: 1~2^32-1,默认为1
server-id=1
#是否只读,1表示当前mysql服务器是只读型的,0表示读写型。由于是配置主库,所以需要设置为既能读也能改
xxxxxxxxxx
read-only=0
xxxxxxxxxx
#忽略的数据,指不需要同步的数据库。指定我们在同步的时候,会忽略哪些数据库,即哪些库的数据不会被同步过去。可选
#binlog-ignore-db=mysql
#指定同步的数据库。即哪些数据库要被同步过去。可选,也就是可不设置都没事
#binlog-do-db=db01
具体操作如下:
vim /etc/my.cnf
会出现一个文本编辑页面,使用键盘的向下箭头,在末尾行输入如下两行,然后保存退出
xxxxxxxxxx
server-id=1 #配置服务器id
read-only=0 #当前mysql服务器是读写型的
2、重启mysql服务器
xxxxxxxxxx
systemctl restart mysqld
3、登录mysql,创建远程连接的账号(如果有账号了,就当做是多创建一个),并授予主从复制的权限
#先登录mysql
myslq -u root -p
#修改密码复杂度,0表示密码复杂度为简单类型,6表示密码长度为6为
set global validate_password.policy = 0;
set global validate_password.length = 6;
#创建huanf用户,并设置密码,%表示该用户可在任意主机连接该MySQL服务。例如用户名huanf,密码228675
create user 'huanf'@'%' identified with mysql_native_password by '228675';
#为huanf用户(也就是'huanf'@'%'用户)分配主从复制的权限
grant replication slave on *.* to 'huanf'@'%';
4、紧接着,查看二进制日志坐标
show master status;
查询出来的结果中,我们只要只关注三个字段,如下 (1)File字段: 表示我们会写到哪个日志文件,也就是从哪个日志文件开始推送日志文件。例如binlog.000007,表示从库以后就会读取这个文件 (2)Position字段: 表示位置,也就是从哪个位置开始推送日志。例如661,也就是从库以后就会从binlog.000007文件里面的661位置往后进行 同步数据,或者简单说就是从库无法读取到主库binlog.000007文件里面的661位置之前的数据,只能读取到661位置往后的数据 (3)binlog_ignore_db: 指定不需要同步的数据库
5、登录我们创建好的huanf用户
mysql -u huanf -p
暂时不要动,等下节课把从库配置完了,我们再回来测试