MySQL主从

一:环境配置

共同的hosts文件配置
vim /etc/hosts

192.168.138.77 master-node
192.168.138.78 slave-node
master-node
ip: 192.168.138.77
linux-version:Centos 7.8
slave-node
ip:192.168.138.78
linux-version:Centos 7.8
镜像源配置
cat /etc/yum.repos.d/mysql-community.repo

# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


查看是否有老版本,并清理
rpm -qa | grep mysql*
yum remove mysql*

二:安装 mysql 5.7.31

yum -y install mysql-community-common    mysql-community-libs mysql-community-libs-compat mysql-community-client mysql-community-server
配置文件修改(服务要重启)
echo "validate_password=OFF" >> /etc/my.cnf
# 降低密码强弱程度,这里被坑了
mysql操作
systemctl start mysqld
systemctl enable mysqld
修改初始密码

初始化密码放在这里了

grep password /var/log/mysqld.log

三:主从配置

master-node节点配置
vim /etc/my.cnf

server-id=1
log-bin=mysql-bin #开启二进制文件
#binlog-do-db=demo    #需要同步的二进制数据库名;
binlog-ignore-db=information_schema    #不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#log-slave-update  #这个是把更新的记录写到二进制文件中;                 
slave-node节点配置
vim /etc/my.cnf

server-id=2 # 这个必须要有,但是id号不能相同
relay-log=/var/lib/mysql/relay.log  # 这个文件如果mysql创建不了,手动创建记得修改权限

maste-node操作
1>锁表,先加锁,防止两边数据不一致;如果业务还未上线,这个就没有必要了
mysql> flush tables with read lock;

2>创建授权用户
mysql> grant replication slave on *.* to 'slave'@'192.168.138.88' identified by '123456';

3>查看binglog信息,只有打开二进制日志,这句命令才有结果,表示当前数据库的二进制日志写到什么位置
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000010
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: information_schema,mysql,performance_schema,sys
Executed_Gtid_Set: 
1 row in set (0.00 sec)

# 注意:此时千万不要往里面写东西

slave-node操作
mysql> change master to master_host='192.168.137.77', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000010', master_log_pos=154;
参数说明:
    master_host:        master ip
    master_user:        同步用户
    master_password:    密码
    master_port:     端口
    master_log_file:    master上面查看到的二进制日志名
    master_log_pos:     master上面查看到的POS值

mysql>slave start;

mysql> show slave status \G;
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

四:测试

先查看master-node节点

image-20200916205106706

查看slave-node节点

image-20200916205204215

后看master-node

image-20200916205540867

后看slave-node

image-20200916205628214

posted @ 2020-09-16 21:25  为了等  阅读(186)  评论(1)    收藏  举报