千家信息网

MySQL构建主从项目

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,项目环境:系统:CentOS7.6数据库版本: MySQL 5.7关闭:firewalld关闭:selinuxMySQL主从复制流程简介1、主:记录所有改变了的数据的语句,放进masert上的binl
千家信息网最后更新 2025年11月08日MySQL构建主从项目

项目环境:
系统:CentOS7.6
数据库版本: MySQL 5.7
关闭:firewalld
关闭:selinux

MySQL主从复制流程简介
1、主:记录所有改变了的数据的语句,放进masert上的binlog中;
2、从:io线程--在使用start slave之后,负责从masert上拉取binlog内容,返回io线程,最后放进自己的relay log中;
3、从:sql执行线程会读取中继日志--执行relay log中的语句。
注意:是从服务器去主服务器抓取二进制日志再放到自己的中继日志里,sql线程会一直读取自己的中继日志。

主库:192.168.1.31

准备一个库(素材)
mysql> create database test; #创建一个库用作测试
mysql> use test; #选择test库
mysql> create table emp (empno numeric(4) not null,ename varchar(10),job varchar(9),mgr numeric(4),hiredate datetime,sal numeric(7,2),comm numeric(7,2),deptno numeric(2)); #在test库里创建一张表
mysql> insert into emp values(7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20); #插入一条语句

写配置文件
[root@MySQLDB1 ~]# vim /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
#symbolic-links=0

#master and slave
log-bin=mysql-bin-master
server-id=1
binlog-do-db=test
binlog-ignore-db=mysql

[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/mysql.pid

[client]
socket=/usr/local/mysql/mysql.sock

重启数据库
[root@MySQLDB1 ~]# /etc/init.d/mysqld restart

登录数据库内创建用户(slave从库)授权访问

mysql> grant replication slave on *.* to slave@192.168.1.32 identified by "123456";

mysql> flush privileges; #刷新权限

mysql> select * from mysql.user where user='slave'\G; #查看一下权限

Repl_slave_priv: Y #复制的权限

mysql> show master status; #查看一下状态信息
+-------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------------+----------+--------------+------------------+-------------------+
| mysql-bin-master.000004 | 601 | test | mysql | |
+-------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

从库:192.168.1.32

写从库的配置文件
[root@MySQLDB2 ~]# vim /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
symbolic-links=0

server-id=2

[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/mysql.pid

[client]
socket=/usr/local/mysql/mysql.sock

重启数据库
[root@MySQLDB2 ~]# /etc/init.d/mysqld restart

测试登录主库的slave账号成功!
[root@MySQLDB2 ~]# mysql -uslave -p123456 -h292.168.1.31
mysql> exit;

登录身的root账号做同步
[root@MySQLDB2 ~]# mysql -uroot -p123456

mysql> stop slave; #先停止从库账号

授权master可以访问从
mysql> change master to master_host='192.168.1.31',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin-master.000004',master_log_pos=601;

开启slave用户
mysql> start slave;

mysql> show slave status \G #查看同步成功了吗?

Slave_IO_Running: Yes #出现这两个说明主从同步成功了
Slave_SQL_Running: Yes

数据 数据库 日志 线程 成功 权限 语句 账号 中继 同步 登录 主从 文件 服务器 用户 放进 服务 测试 配置 项目 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 成熟的网络安全管理制度体系 大量数据导入数据库用什么开发 服务器安全组可以替代防护吗 服务器硬盘8块做raid 软件开发行业动态新闻 软件开发论文自我鉴定 hcm是什么意思软件开发 黄浦区app软件开发服务 邮箱服务器系统 杭州武夷山软件开发 二手dell服务器 知网数据库怎么下载 杭州微学网络技术有限公司 网络安全知识资料ppt 计算机网络技术大专大二学什么 网络安全中逻辑安全包括什么 回民实验小学网络安全课 推送信息的app需要什么服务器 平面设计跟软件开发值得做吗 合肥网络技术支持 西电网络安全复试开始了吗 网络安全所需要用到的语言 大连8年软件开发经验 数据库中怎样将几个表全连接 服务器 管理口 连接不上 360网络安全中心现在叫什么 防疫物资调配系统数据库设计 数据库记录时间类型 dota连接不上国内服务器 传奇4国际服有哪些服务器
0