安装linux centos 7
安装完毕后,修改网卡地址,关闭防火墙,关闭selinux
网卡:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
改为静态ip获取,关键的是,这5行。
#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=172.16.0.231
NETMASK=255.255.255.0
GATEWAY=172.16.0.1
DNS1=114.114.114.114
UUID=9a7ae773-bfe9-48b0-862b-f34ab7777e00
DEVICE=enp0s3
ONBOOT=yes
关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
关闭selinux
vim /etc/selinux/config ,
将SELINUX=enforcing改为disabled。
安装mysql5.7
安装rpm -ivh mysql57-community-release-el7.rpm,更新repo的源,
安装 yum install mysql-server
安装完毕后,启动systemctl start mysqld
第一次进去改密码:
cat /var/log/mysqld.log | grep password
mysql -uroot -p 回车后,输入密码,好像第一次在p后直接加密码,登录不了。
//进去后,修改密码强度策略,此策略修改不保存,下次启动后,还会复原。
set global validate_password_policy = 0;
// 改密码
alter user root@localhost identified by 'xxxxxxxxx';
//授予远程权限
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "xxxxxx";
flush privileges;
按以上步骤,建立两台这样的服务器
分别命名为M1,和M1S1,
M1
在M1,上,
修改 vim /etc/my.cnf
在mysqld节点,加入:
[mysqld]
server-id=1
log-bin=master.bin
重启mysql
systemctl restart mysqld
进入控制台:
mysql -uroot -p
建立用户rep,密码abc123456
需要修改密码强度策略
create user 'rep'@'%' identified by 'abc123456';
赋予权限
grant replication slave on *.* to 'rep'@'%';
刷新权限
flush privileges;
可以用本地的sqlyog测试是否rep登录,测试时,可以ssh隧道,ip地址填写localhost
登录后,查看master的状态值
show master status;
查看到File 和 pos信息,记下来,后续备用,
这样,基本搞成主服务器
:半同步复制
show variables like "%have_dynamic_loading%";
show plugins ; 查看插件
安装主服务器master 插件
install plugin rpl_semi_sync_master soname 'semisync_master.so';
临时开启
set persist rpl_semi_sync_master_enabled=on;
修改my.cnf 永久开启,在mysqld节点
rpl_semi_sync_master_enabled=ON
rpl_semi_sync_master_timeout=10000
rpl_semi_sync_master_trace_level=32
rpl_semi_sync_master_wait_for_slave_count=1
rpl_semi_sync_master_wait_no_slave=ON
rpl_semi_sync_master_wait_point=AFTER_SYNC
rpl_stop_slave_timeout=31536000
M1S1
修改my.cnf
在【mysqld】节点:
加入 server-id=2
然后登录
进去后,执行
change master to master_host="172.16.0.230",master_port=3306,master_user="rep",master_password="abc123456",master_log_file="master.000001",master_log_pos=154 ;
这里 master_log_file ,为上文中 提到的show master status中的 file,pos为上文提到的pos。
start slave;
show slave status G;
查看
两个yes,即为正常。
:安装半同步插件
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
临时开启
set persist rpl_semi_sync_slave_enabled=on;
永久开启,修改my.cnf文件
rpl_semi_sync_slave_enabled=ON
rpl_semi_sync_slave_trace_level=32
create database zhouyi2;
mysql > use zhouyi2; mysql > source ootzy0101.sql
若不正常
stop slave;
然后找原因,
第一个YEs,往往是,配置通信的故障,
第二yes是,数据库sql同步的故障。