搭建主从数据库

搭建主从数据库 这里需要准备两台虚拟机 自己准备
1. 搭建主从数据库
1) 安装数据库mysql8.0版本
下载软件包
wget http://repo.mysql.com/mysql80-community-release-el7.rpm

2)安装 下载
rpm -ivh mysql80-community-release-el7.rpm 
yum install -y mysql-community-server
3)启动mysqld服务
systemctl enable --now mysqld

2. 配置数据库
1)查数据初始密码
grep -i 'password' /var/log/mysqld.log

2) 修改数据库初始密码
#1.mysql1登录
mysql -uroot -p     ---- 密码为初始密码:alNttsCym2;Q
#2.修改
alter user 'root'@'localhost' identified by 'Xu712814@';

3.配置主数据库
创建数据库用户  可以让他远程
create user 'master'@'%' identified with mysql_native_password by 'Xu712814@';

赋予用户所有权限
grant replication slave on *.* to 'master'@'%';

刷新数据库  同步设置
flush privileges;

查看设置是否同步
show grants for 'master'@'%';

mysql> show grants for 'master'@'%';
+------------------------------------------------+
| Grants for master@%                            |
+------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `master`@`%` |
+------------------------------------------------+
1 row in set (0.00 sec)

修改数据库主配置文件
[root@mysql1 ~]# sed 4,+4p -n /etc/my.cnf
[mysqld]
server-id=99          数据库服务的唯一ID
log-bin=mysql-bin       设置binlog日志的存放位置
binlog_do_db=backup     设置进行同步的数据库,这条不写表示同步全部数据库
binlog_ignore_db=mysql     设置不进行同步的数据库 

启动数据库
systemctl restart mysqld
查看主库的master信息
mysql> show master status;
+------------------+----------+--------------+------------------+-----------------
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Se
+------------------+----------+--------------+------------------+-----------------
| mysql-bin.000002 |     1264 | backup,nu    | mysql            |                 
+------------------+----------+--------------+------------------+-----------------
1 row in set (0.00 sec)

#说明:
#File 就是我们刚刚设置的log-bin的存放文件,用来记录mysql操作的日志文件。
#Position 表示是偏移量
#Binlog_Do_DB 需要进行同步的数据库
#Binlog_Ignore_DB 不进行同步的数据库


4.配置从数据库配置
#1.mysql1登录
mysql -uroot -p     ---- 密码为初始密码:alNttsCym2;Q
#2.修改
alter user 'root'@'localhost' identified by 'Xu712814@';

修改mysql配置文件
[root@mysql2 ~]# egrep -v '^$|#' /etc/my.cnf
[mysqld]
server-id=100       ---- 数据库服务的唯一ID

重启数据库
systemctl restart mysqld

5.绑定主数据库

change master to master_host='10.0.0.99',master_user='master',master_password='Xu712814@',master_log_file='mysql-bin.000001',master_log_pos=1264;

#2.sql 语句说明
master_host=10.0.0.99             #后面要填写第一台主master的IP
master_user= master            #写之前在主master上创建的用户名
master_password=Cui404412@         #写之前在主master上创建的用户名的密码
master_log_file=        #日志文件,在master使用show master status;那一步显示的值。
master_log_pos=             #偏移量
开启主从同步
start slave;
查看是否同步
mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 10.0.0.101
                  Master_User: master
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 157
               Relay_Log_File: mysql2-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

  #说明:
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
 表示数据库正在同步


 6.测试 主从数据库
 创建库
 create database backup;

 进入库
 use  backup

 在库中创建表
 create table test(      id int comment'编号',      workno varchar(10) comment'工号', name varchar(10) comment'姓名',      gender char(1) comment'性别',      age tinyint unsigned comment'年龄证号',      workadderss varchar(50) comment'工作地址',     entrydate date comment';
#创建test1表
create table test1(id int,name varchar(20) not null default 'username');

#3.查看表
mysql> show tables
    -> ;
+------------------+
| Tables_in_backup |
+------------------+
| test             |
| test1            |
+------------------+
2 rows in set (0.00 sec)

查看表内容
mysql> desc test;
 desc test1;


 查看从库是否同步

show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| backup             |
| information_schema |
| mysql              |
| nu                 |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

查看表


mysql> 
mysql> use nu;
Database changed
mysql> show tables;
+--------------+
| Tables_in_nu |
+--------------+
| test         |
| test1        |
+--------------+
2 rows in set (0.00 sec)

查看表中内容
desc test;

主从数据库配置完成

配置主从数据库 注意一点在创建库之后需要有表 这样从库就会显示主库的数据表内容
如果不需要配置
  binlog_do_db=backup     设置进行同步的数据库,这条不写表示同步全部数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值