环境:centos7u5
master 192.168.146.110
slave 192.168.146.129
所有机器都作以下操做:
修改主机名称
分别为:master和slave
域名解析
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.146.110 master
192.168.146.129 slave
推ssh公钥
ssh-copy-id IP
关闭selinux和防火墙
[root@master ~]# setenforce 0 && systemctl stop firewalld
确保时间一致 确保主机之间的连通性------>使用ntp时间同步服务器
ntpdate -b 时间同步的服务器
下载并安装Mysql5.7(所有机器都做),找包的话可以在官网上找到
包名:mysql57-community-release-el7-9.noarch.rpm
启动mysql:(所有机器都做)
systemctl start mysqld
注意:
mysql5.7启动之后自带密码,不能直接登陆
获取mysql5.7初始启动密码:
grep passw /var/log/mysqld.log
2018-05-15T07:12:00.852544Z 1 [Note] A temporary password is generated for root@localhost: N-+e*ZL:_3gh
测试密码是否可用:
mysql -uroot -p'N-+e*ZL:_3gh'
去掉简单密码限制功能:
vim /etc/my.cnf //追加如下选项
[mysqld]
validate_password=off 可以使用简单的密码进行操作
重启服务
修改成简单密码:现在密码为123
master:
修改配置文件:
#vim /etc/my.cnf
[mysqld]
validate_password=off
log-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
授权远程账户:
mysql> grant replication slave,super,reload on *.* to slave@'%' identified by '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
slave:
修改配置文件
# vim /etc/my.cnf
[mysqld]
validate_password=off
log-bin
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1
重启master和slave上的mysqld:
[root@master mysql]# systemctl restart mysqld
[root@slave mysql]# systemctl restart mysqld
继续配置slave:
# mysql -u root -p123
mysql > change master to
master_host='master',
master_user='slave',
master_password='123',
master_auto_position=1;
mysql > start slave; //启动slave角色
mysql > show slave status\G //查看状态
测试:在主库上进行创建库和表,可以在从库上得到相应的数据
出现的报错:
出现这个问题,在我的机器上的解决方案是,我在部署这个环境的时候,偷懒操作大致的造作也已经比较熟悉,我就在没起数据库的状态下,在/etc/my.cnf的配置文件里进行相应的修改,后面查询各种排错的方式发现都不行,后面只能重新将环境清空然后重新来过,找到这一个解决方案
方案如下
安装完成数据库后,启动,修改完数据库的初始密码后,在进行配置文件的修改就可以了。这个报错也就迎刃而解了。