环境介绍
系统版本 centos7.4
master-192.168.2.14
slave1-192.168.2.15
slave2-192.168.2.16
一安装mysql5.7
1.在master上安装ansible yum -y install ansible
2.配置三台节点免密互通 ssh-keygen ,三次回车,在/root/.ssh/生成秘钥文件
ssh-copy-id -i root@192.168.2.14
ssh-copy-id -i root@192.168.2.15
ssh-copy-id -i root@192.168.2.16
在slave1和slave2上执行同样的操作
3.ansible配置文件添加主机组
cat > /etc/ansible/hosts <<EOF
192.168.2.14
192.168.2.15
192.168.2.16 EOF
4.创建ansible-playbook 目录 mkdir -p /data/playbook
5.编写playbook脚本文件
cat > /data/playbook/mysql_install.yml <<EOF
---
# install mysql5.7
- hosts: mha
remote_user: root
tasks:
- name: yum install mysql
yum: name=mysql-server,mysql-community-server state=present
- name: service start mysqld
service: name=mysqld state=started enabled=yes
需要提前在三台节点上配置好yum
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
6.检查ansible剧本 ansible-playbook /data/playbook/mysql_install.yml -C
无报错执行即可 ansible-playbook /data/playbook/mysql_install.yml
7.检查三台机器mysql服务是否启动 ss -ntl |grep 3306
二.配置mysql
1.修改mysql初始密码
grep "password" /var/log/mysql.log
登录mysql 重置密码 SET PASSWORD = PASSWORD('!!YHN6yhn')
2.创建用于复制的授权账号
GRANT REPLICATION SLAVE ON . TO 'bruceli'@'%' identified by "!!^YHN6yhn"
3.修改mysql-master配置文件
cat>/etc/my.cnf <<
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id=1
log-bin=mysql-bin
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
4.修改mysql-slave1的配置文件,修改密码同上
在master 配置文件基础上做简单修改
server-id = 2
并增加relay_log = slave-relay-bin
5.mysql-slave2 同上并修改 server-id = 3
6.登录mysql 查看mysql binlog 位置信息
show master status \G 记录 mysql binlog file文件名称和 position
mysql-bin.000001log postion=154
7.在slave1,2分别执行 change master to master_host="192.168.2.14"
,master_user='bruceli',master_passwd='!!^YHN6yhn',master_port="3306"
,master_log_file="mysql-bin000001log",master_log_pos="154" ;
8.在slave1,2分别执行 start slave;show slave status \G
确认slave_io_running = yes
slave_sql_running =yes