数据库主从配置

        首先mysql的主从配置非常简单,不要怕错,勇敢尝试。

一、准备环境

        搭建虚拟机环境,我在这里搭建了两个虚拟机centos7.6和centos7.6s,如何搭建虚拟机看这里:(3条消息) Oracle VM VirtualBox虚拟机运行LockyLinux_lockylinuc_CV猿码人的博客-CSDN博客

数据库主从配置_第1张图片

         下载mysql,我这里用的是mysql8,下面是下载安装指令

yum install -y wget #如果没有wget需要下载

wget http://repo.mysql.com/mysql80-community-release-el7.rpm

yum -y install mysql80-community-release-el7.rpm

yum -y install mysql-community-server

systemctl start mysqld #看看mysql能不能启动

grep "password" /var/log/mysqld.log  # 8以后需要获取临时密码登录

grep "password" /var/log/mysql/error.log // 也有可能出现在这个目录,实例化后密码会出现在这

二、添加配置文件

        主数据库配置

vi /etc/my.cnf
server-id=10     #服务器id (主从必须不一样)
log-bin=/var/lib/mysql/master10-bin   #打开日志(主机需要打开)
expire_logs_days=30
binlog-ignore-db=mysql    #不给从机同步的库(多个写多行)
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

        从数据库配置

vi /etc/my.cnf
server-id=11
relay-log=relay-bin
read-only=1
replicate-ignore-db=mysql               # 不复制的库
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

添加完配置文件,记得重启数据库

systemctl restart mysqld

三、添加mysql从账号

# 修改账号
update user set host = '%' where user = 'root';
# 刷新权限
flush privileges;
# 添加从数据库
create user 'slave'@'%' identified by '密码';
# 配权限
GRANT ALL REPLICATION SLAVE ON *.* TO 'slave'@'%';
# 查看添加的账户
select user,host from mysql.user;

        看到从主机这样就配置好了 

数据库主从配置_第2张图片

四、配置主从节点信息 

         先把表锁了,要不然 Position会一直变。

 flush table with read lock; 

        获取主数据库节点信息

 show master status \G

数据库主从配置_第3张图片

         注意别这两行信息非常关键

        切换到从数据库,登录后(不需要登录slave,就默认用户就行),以防万一先把从节点暂停

mysql> stop slave

        配置从节点信息

mysql> CHANGE MASTER TO
     MASTER_HOST='192.168.0.121', #主数据库地址
     MASTER_USER='slave', #配置的从账户
     MASTER_PASSWORD='密码', #从账户密码
     MASTER_LOG_FILE='master10-bin.000005', #刚才的日志名
     MASTER_LOG_POS=157; #刚才的position

        运行从节点

mysql> start slave

        查看从节点信息

mysql> show slave status \G

数据库主从配置_第4张图片                  Slave_IO_Running: Connecting     必须为Yes才对,现在出现了连接问题
                  Slave_SQL_Running: Yes

        通过下面的连接记录可以看到无法访问主数据库ip3306 

         将防火墙关闭

systemctl stop firewalld.service
systemctl disable firewalld.service

数据库主从配置_第5张图片

        还有些主从无法建立连接,最直接的办法就是重启主从数据库,重新配置一遍。 

        最后把表解锁掉,测试是否成功 。

unlock tables;
CREATE DATABASE qq; #测试是否能同步

                                                                       主

数据库主从配置_第6张图片

                                                                       从

数据库主从配置_第7张图片

        ok 数据库主从配置完了,在主库中添加数据库或表信息,从库都会自动同步。

        

你可能感兴趣的:(linux,数据库,java,开发语言)