Mysql数据库主从配置

备注:

  • 以下操作需要在数据库已经安装的前提下进行,本例子需要两个Mysql数据库服务器:一台作为Master主数据库,一台作为Slave从数据库.
  • Mysql数据库可以同时配置Master和Slave,既可以做主数据库,也可以做从数据库。

配置Master主数据库

  • 操作系统 Centos7
  • 数据库版本 Mysql5.7
  • IP地址 192.168.20.11
  • 端口号 3306

修改my.cnf文件配置

# vim /etc/my.cnf

这里写图片描述

在[mysqld]下面添加如下配置:

server-id = 1 #唯一的(确保每个数据库的server-id值都是唯一的)
binlog_format = MIXED #binlog日志格式,mysql默认采用statement,建议使用mixed
log_bin = master-bin #binlog日志文件
log_bin_index = master-bin.index
expire-logs-days = 14 #日志过期清理时间
sync_binlog = 0
binlog_cache_size = 4M #binlog缓存大小
max_binlog_cache_size = 8M #binlog最大缓存大小
max_binlog_size = 1024M #每个日志文件大小
log_slave_updates
binlog_do_db = energy #设置同步的表
binlog_ignore_db = mysql #不需要同步的表

这里写图片描述

重启服务

# service mysqld restart

这里写图片描述

创建同步的用户

登录mysql数据库
# mysql -uroot -proot

这里写图片描述

给Slave数据库创建用于连接的账户
# grant replication slave on *.* to 'slave' @'192.168.20.%' identified by 'slave';

这里写图片描述

注: 创建账户slave,密码slave; 权限:replication slave(复制需要的权限,监视和管理复制账号权限);
IP允许的范围:192.168.20.%(允许192.168.20开头的网段,正式环境请配置指定从数据库服务器IP)。

查看master状态

mysql> show master status;
+-------------------+------+-------------+----------------+---------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+-------+-------------+---------------+--------------+
| master1-bin.000001  |    154 | energy       | mysql          |                   |
+-------------------+--------+------------+--------------+-----------------+
1 row in set (0.00 sec)

这里写图片描述

注: File:二进制日志文件,记录数据库变化(数据库,表,视图,函数等增删改),数据同步的关键文件,Slave数据库连接的时候会用到。
Position:记录位置,Slave数据库连接的时候会用到。

配置Slave从数据库(例:192.168.20.21)

  • 操作系统 Centos7
  • 数据库版本 Mysql5.7
  • IP地址 192.168.20.21
  • 端口号 3306

修改my.cnf文件配置

# vim /etc/my.cnf

这里写图片描述

添加如下配置:

server-id = 2
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index

这里写图片描述

重启服务

# service mysqld restart

这里写图片描述

启动同步功能

登录mysql数据库
# mysql -uroot -proot

这里写图片描述

连接master数据库
change master to 
master_host='192.168.20.11',master_port=3306,master_user='slave',master_password='slave',master_log_file='master-bin.000001',master_log_pos=154;

这里写图片描述

注:

  • master_host:Master数据库地址
  • master_port:Master数据库端口
  • master_user:用户名
  • master_log_file:对应Master数据库二进制日志文件
  • master_log_pos:对应Master数据库Position

启动slave:

#start slave;

这里写图片描述

查看运行状态

# show slave status\G

当这下面两个属性为Yes的时候,配置成功。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这里写图片描述

测试主从复制功能

给Master数据库添加数据

登录Master数据库(192.168.20.11)
# mysql -uroot -proot

这里写图片描述

创建数据库energy并进入
mysql> create database `energy` default character set utf8 collate utf8_general_ci; 
mysql> show databases;
mysql> use energy;

这里写图片描述
这里写图片描述
这里写图片描述

创建表test,并插入一条语句
mysql> create table test(id int primary key,name varchar(100) not null)default charset=utf8;
mysql> insert test(id,name) values(1,'张三');

这里写图片描述

查询:mysql> select * from test;
这里写图片描述

创建视图v_test
mysql> create view v_test as select id,name from test;

这里写图片描述

创建存储过程p_test

把分隔符换成//

mysql> delimiter //  

创建存储过程

mysql> create procedure p_test () begin declare a int; set a=12;  select a from dual;  end//

这里写图片描述

查看Slave数据库是否同步

注:查看Master数据库energy,表test,视图v_test,存储过程p_test是否同步

登录Slave数据库(192.168.20.21)
[root@Slave ~]# mysql -uroot -proot
查看数据库energy
mysql> show databases;

这里写图片描述

注:这里显示有energy,说明数据同步成功。

进入energy
mysql> use energy
查询test表
mysql> select * from test;
查询视图
mysql> select * from v_test;

这里写图片描述

注:表和视图均查询成功,说明同步成功。

查询存储过程p_test
mysql> show create procedure p_test;

这里写图片描述

注:同步成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值