IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql主备机器配置 -> 正文阅读

[大数据]mysql主备机器配置

首先在两个服务器上创建两个数据库

数据库ip地址操作系统数据库版本
mysql主数据库192.168.183.140centos75.7
mysql从数据库192.168.183.139centos75.7

需要关闭selinux,防火墙,并清空Iptables规则。

  • MySQL Replication,可以实现将数据从一台库服务器( master)复制到一 台或多台数据库服务器 (slave)。
  • 默认情况下属于异步复制,无需维持长连接,通过配置,可以复制所有的库或者几个甚至中一些表,这个功能是 MySQL 内建的,本身自带的。

复制过程简单的说就是 master 将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志行数据操作

1.MySQL主服务器配置

配置MySQL配置文件

#先提供一下启动服务的相关命令,后面要用到
#使用 service 启动:
[root@localhost /]# service mysqld start ---------------------->8.0版本是mysqld
[root@szxdb etc]# service mysql start    ---------------------->5.5.7版本是mysql

service mysql restart #重启

service mysql stop #停止
[root@master ~]# vim /etc/my.cnf

#在[mysqld]中添加
#启用二进制日志 
log-bin= mysql-bin-master 
#本机数据库 ID 标示,主从配置中ID要唯一
server-id= 1 
#可以被从服务器复制的库, 二进制需要同步的数据库名
binlog-do-db= test 
#如果有多个数据库,需要重复配置,不能直接在后面用逗号增加,否则mysql 会把这里当成一个数据库,会有坑
#binlog-do-db= test2 
#binlog-do-db= test3 
#注释掉 binlog_do_db 和 binlog_ignore_db ,则表示备份全部数据库
#不可以被从服务器复制的库
binlog-ignore-db= mysql 
#保存并重启MySQL服务(如果重启卡死现象,kill 掉再启动) 
[root@master ~]# service mysql restart

授权主从同步slave用户权限

[root@master ~]# mysql -uroot -p'root123'
mysql> grant replication slave on *.* to slave@192.168.183.139 identified by "root123"; 
#ip地址为从库的IP  创建slave账号slave,密码root123
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show master status; #查看主服务器状态信息

mysql> show binlog events\G;  #展示相关状态

在这里插入图片描述

2.MySQL从服务器配置

#测试slave用户是否可以正常连接
[root@slave ~]# mysql -uslave -root123 -h 192.168.183.139

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

修改从服务器配置文件

[root@slave ~]# vim /etc/my.cnf

#在[mysqld]中添加
#从服务器没必要开启bin-log日志,
server-id=2 
#从服务器ID号,不要和主ID相同,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。
#可以认为 server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。
#重启从服务器MySQL服务
[root@slave ~]# service mysql restart
#从服务器设置主服务器配置
[root@slave ~]# mysql -uroot -proot123

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

#授权
mysql> change master to master_host='192.168.183.140',master_user='slave',master_password='123456'; #IP地址为主服务器地址。
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave; #启动slave
mysql> show slave status\G; #查看状态

在这里插入图片描述

可以看到出现了两个为 YES,则主从配置成功了

参数作用
Slave_IO_Running负责与 Master 主机的 IO 通信
Slave_SQL_Running负责自己的 slave mysql 进程

4.查看主服务器主从同步状态

[root@master ~]# mysql -u root -p'root123'

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show processlist\G #查看进程列表

在这里插入图片描述

3.测试主从同步

在主服务器模拟程序插入数据

切换到从库进行查看

至此,主从同步基础搭建完成。

4、主从同步排错

1.主从不同步
登录主库看一下bin -log 的位置,然后再进行同步。

在这里插入图片描述

登录从库执行 MySQL 命令:

mysql> stop slave; #停止slave服务
mysql> change master to master_log_file='mysql-bin-master.000001',master_log_pos=444; 
#根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,达到同步的效果。
Query OK, 0 rows affected (0.00 sec)

mysql> start slave ; #启动 I/O 线程和 SQL 线程看一下从服务器的同步情况
mysql> show slave status\G

在这里插入图片描述

如果出现Slave_IO_Running: Yes, Slave_SQL_Running: Yes那代表已经在同步了。

排错总结:
1.IO_Running排错思路:
二进制日志没有开启 IPTABLES 没有放开端口 对应的主机 IP 地址写错了 用户名或密码写错了

2.SQL_Running排错思路:
主从服务器数据库结构不统一。出错后如果数据少,可以手动解决创建插入,再更新 slave 状态。 注:如果主上误删除了。那么从上也就误删除了。 #因此主上要定期做 mysqldump 备份。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:23:07  更:2022-04-27 11:26:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:15:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码