mysql基础之mysql主从架构
一、概念
主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构来搭建

二、配置主节点
1、配置准备
(1)yum源配置
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
(2)服务器1:192.168.11.7(主)
服务器2:192.168.11.8(从)
2、下载mysql,修改配置文件(5.7版本与mariadb冲突,需要先删除mariadb)
yum -y install mysql-com*server
[root@ren7 ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
server-id=1 <<主从节点必须保证不能一样
log-bin=mysql-bin <<定义二进制日志文件保存文件和格式
binlog_format=row <<主从节点保持一致,要么都是row,要么都是mixed
3、重启mysql服务
[root@ren7 ~]# systemctl restart mysql
4、主节点上授权具有复制权限的用户(创建主从连接账号与授权)
mysql [(none)]> create user 'slave'@'%' identified by 'Slave123/';
Query OK, 0 rows affected (0.00 sec) mysql [(none)]> grant replication slave on *.* to 'slave'@'%';
Query OK, 0 rows affected (0.00 sec) mysql [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
5、查看当前二进制日志文件
mysql [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 781 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
三、配置从节点(修改从节点和主节点时间同步,可以使用NTP服务或者date直接设置)
1、修改配置文件
[root@ren8 ~]# vim /etc/my.cnf.d/server.cnf
###########################
[mysqld]
server-id=2
binlog_format=row
log-bin=mysql-bin
##########################
2、重启mysql服务
[root@ren8 ~]# service mysql restart
Redirecting to /bin/systemctl restart mysql
3、登录数据库
[root@ren8 ~]# mysql_secure_installation
[root@ren8 ~]# mysql -u root -p123
Welcome to the mysql monitor. Commands end with ; or \g.
Your mysql connection id is 24
Server version: 10.2.26-MariaDB mysql Server Copyright (c) 2000, 2018, Oracle, mysql Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
4、建立主从连接
格式:CHANGE MASTER TO 选项
选项:
MASTER_HOST = 'host_name' 指定主服务的ip或者主机名
MASTER_USER = 'user_name' 指定主服务器的用户名
MASTER_PASSWORD = 'password' 指定用户名的密码
MASTER_PORT = port_num 指定连接的端口,默认是3306
MASTER_CONNECT_RETRY = interval 指定连接失败的时候的重试间隔时间
mysql [(none)]> change master to master_host='192.168.11.7', master_user='slave', master_password='Slave123/', master_log_file='mysql-bin.000001', master_log_pos=781;
Query OK, 0 rows affected (0.03 sec)
5、启动从节点
mysql [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)
6、查看从节点连接状态
主要看IO以及SQL线程是否启动
mysql [(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: 192.168.11.7
Master_User: slave01
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 781
Relay_Log_File: ren8-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Connecting <<IO线程正在连接
Slave_SQL_Running: Yes <<SQL线程启动成功
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 781
Relay_Log_Space: 256
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 2003
Last_IO_Error: error connecting to master 'slave@192.168.11.7:3306' - retry-time: 60 maximum-retries: 86400 message: Can't connect to MySQL server on '192.168.11.7' (113 "No route to host")
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: No
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
1 row in set (0.00 sec) ERROR: No query specified
问题解决:
slave_IO_Running:Connecting一直处于连接状态
错误原因:
1、网络不通
2、账户密码错误
3、防火墙
4、mysql配置文件问题
5、连接服务器时语法错误
6、主服务器mysql权限
此处是防火墙的原因,在主从服务器上添加防火墙端口即可;
[root@ren7 ~]# firewall-cmd --add-port=3306/tcp
success
[root@ren7 ~]# firewall-cmd --add-port=3306/tcp --permanent
success
[root@ren8 ~]# firewall-cmd --add-port=3306/tcp
success
[root@ren8 ~]# firewall-cmd --add-port=3306/tcp --permanent
success
mysql [(none)]> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql [(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7、测试
--在主节点创建一个新表
mysql [(none)]> create database zhong;
Query OK, 1 row affected (0.00 sec)
--在从节点查看是否创建成功
mysql [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zhong |
+--------------------+
4 rows in set (0.00 sec)
--如果出现不同步可以执行以下步骤
stop slave
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave
mysql基础之mysql主从架构的更多相关文章
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- (3.16)mysql基础深入——mysql字符集
(3.16)mysql基础深入——mysql字符集 关键字:mysql字符集,mysql编码 目录 1.概念 2.常用的字符编码 3.查看mysql字符集 [3.1]查看服务器支持的字符集 [3.2] ...
- (3.15)mysql基础深入——mysql默认数据库/系统数据库
(3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...
- (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】
(3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢 ...
- (3.13)mysql基础深入——mysql日志分析工具之mysqlsla【待完善】
(3.13)mysql基础深入——mysql 日志分析工具之mysqlsla 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢查询日志分析工具 ...
- (3.11)mysql基础深入——mysql文件分类与配置文件管理
(3.11)mysql基础深入——mysql文件分类与管理 关键词:mysql配置文件,mysql参数文件,mysql中的my.cnf 目录:mysql数据库文件分类: [1]参数文件:my.cnf ...
- (3.4)mysql基础深入——mysql.server启动脚本源码阅读与分析
(3.4)mysql基础深入——mysql.server启动脚本源码阅读与分析 my.server主要分为3大部分 [1]变量初始化部分 [2]函数声明部分 [3]具体执行部分 #!/bin/sh # ...
- (3.2)mysql基础深入——mysql源码阅读工具安装与应用
(3.2)mysql基础深入——mysql源码阅读工具安装与应用 关键字:mysql源码阅读工具 工具列举:一般多用[1][2][3]吧 [1]source insight [2]写字板/记事本 UE ...
- (3.1)mysql基础深入——mysql二进制与源码目录结构介绍
(3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ...
- MySQL基础、MySQL安装和MariaDB安装
MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...
随机推荐
- BUAA_2020_OO_UNIT2_REVIEW
OO第二单元总结 1. 设计策略 总的来说,三次作业没有大的重构,都是使用了多线程进行电梯调度,输入线程和运行线程分离,主要的不同在于三次电梯调度器线程的数量有所不同,第一次为一个,第二次为n个,第三 ...
- 看过这篇剖析,你还不懂 Go sync.Map 吗?
hi, 大家好,我是 haohongfan. 本篇文章会从使用方式和原码角度剖析 sync.Map.不过不管是日常开发还是开源项目中,好像 sync.Map 并没有得到很好的利用,大家还是习惯使用 M ...
- NumPy之:NumPy简介教程
目录 简介 安装NumPy Array和List 创建Array Array操作 sort concatenate 统计信息 reshape 增加维度 index和切片 从现有数据中创建Array 算 ...
- Go之Zap日志库集成Gin
简介 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 1 . 能够将事件记录到文件中,而不是应用程序控制台; 2 . 日志切割-能够根据文件大小.时间或间隔等来切割日志文件; ...
- Redis持久化——AOF日志
最新:Redis内存--内存消耗(内存都去哪了?) 最新:Redis持久化--如何选择合适的持久化方式 最新:Redis持久化--AOF日志 更多文章... 上一篇文章Redis持久化--内存快照(R ...
- Web操作摄像头、高拍仪、指纹仪等设备的功能扩展方案
摘要:信息系统开发中难免会有要操作摄像头.高拍仪.指纹仪等硬件外设,异或诸如获取机器签名.硬件授权保护(加密锁)检测等情况.受限于Web本身运行机制,就不得不使用Active.浏览器插件进行能力扩展了 ...
- 使用Font Awesome替换EasyUI的图标
用过EasyUI的朋友都知道,大部分组件都有一个iconCls属性,用于显示一个图标.但是EasyUI自带图标数量少.不美观,于是想到了使用Font Awesome来更换和拓展这些图标. 先看看Eas ...
- Python容器数据类型之间的转换
强制转换成字符串 str() 将列表(list)转为字符串 var1 = [1, 2, 3, 4] var2 = str(var1) print(type(var2)) # <class 'st ...
- 1-web 服务器 框架。
1.静态网页与动态网页 1.静态网页:无法与服务器进行交互的网页. 2.动态网页:能够与服务器进行交互的网页. 2.web与服务器 1.web:网页(HTML,CSS,JS) 2.服务器:能够给用户提 ...
- 2.1.4- css 样式规则
CSS初识 CSS(Cascading Style Sheets) CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体.大小.对齐方式等).图片的外形(宽 ...