mysql主从复制@TOC
第一步、防火墙放行
查看firewall防火墙是否放行3306端口
firewall-cmd --list-all
如果没有放行,则firewall防火墙添加3306端口放行
firewall-cmd --permanent --zone=public --add-port=3306/tcp
关闭selinux
vi /etc/selinux/conf
SELINUX=disabled
第二步、
2.1修改master和slave配置文件
vi /etc/my.cnf #Master
server_id=1
log_bin=binlog
log_bin_index=binlog.index
relay_log=mysql_relaylog
relay_log_index=mysql_relaylog.index
vi /etc/my.cnf #Slave
server_id=2
log_bin=binlog
log_bin_index=binlog.index
relay_log=mysql_relaylog
relay_log_index=mysql_relaylog.index
2.2查看mysql初始密码
cat /var/log/mysql.log | grep password
2.3如果mysql密码输入错误
vi /etc/my.cnf
添加 skip-grant-tables
登陆mysql刷新权限
flush privileges;
重启系统
开启mysql数据库(两台机器上都要执行)
systemctl start mysqld.service
第三步、Master和slave都需要修改
如果密码输入正确直接执行以下SQL命令
修改root用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NXyd-ott@3030'
给root用户授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'WITH GRANT OPTION;
修改root可以通过其他地址登陆
update user set host='%' where user='root';
如果有2.3中的情况存在,需要执行以下操作,如果不存在,则不需要执行
vi /etc/my.cnf
删除 skip-grant-tables
systemctl restart mysqld.service;
第四步、查看master和slave数据库
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+
4 rows in set (0.00 sec)
第五步、在Master数据库中添加Slave数据库同步用户并授权
create user ‘oms’@‘192.168.100.%’ identified by ‘NXyd-ott@3030’;
grant replication slave on . to ‘oms’@‘192.168.100.%’;
第六步、设置Slave同步信息
stop slave;
CHANGE MASTER TO
MASTER_HOST=‘192.168.100.129’,
MASTER_USER=‘oms’,
MASTER_PASSWORD=‘NXyd-ott@3030’,
MASTER_LOG_FILE=‘binlog.000001’,
MASTER_LOG_POS=154;
start slave;
show slave status\G;
找到以下两条状态显示,如果全为YES,则表示主备设置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master-Slave到此已经完成
如果需要Master-Master做双机互为主备
第七步、在Slave数据库中添加Master数据库同步用户并授权
create user ‘oms’@‘192.168.100.%’ identified by ‘NXyd-ott@3030’;
grant replication slave on . to ‘oms’@‘192.168.100.%’;
第八步、设置Master同步信息
stop slave;
CHANGE MASTER TO
MASTER_HOST=‘192.168.100.129’,
MASTER_USER=‘oms’,
MASTER_PASSWORD=‘NXyd-ott@3030’,
MASTER_LOG_FILE=‘binlog.000002’,
MASTER_LOG_POS=154;
start slave;
show slave status\G;
找到以下两条状态显示,如果全为YES,则表示主备设置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
到此为止Master-Master双机互为主备已经全部设置成功。
MHA
生成SSH密钥对
ssh-keygen
将公钥复制到每个需要群集的服务器中(复制完成后,相互之间可以通过SSH命令登陆而不需要密码)
for i in 129 130; do ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.100.$1;done