-
2021-11-23 11:08:27
部署环境:
linux Centos 7
mysql8.0.21
服务器两台(一主一从) 192.168.121.10 (主库)、192.168.121.20 (从库)
数据库安装步骤参考上篇链接linux安装mysql详细教程(远程连接)_一朵纯洁的小白花的博客-CSDN博客
两台服务器最好安装版本一致
开始部署
1、配置master主服务器的mysql
[root@localhost bin]# vim /etc/my.cnf
1.在[mysqlId]下新添加
server-id=10 //服务器唯一标识
log_bin=master-bin //启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句
log_bin_index=master-bin.index
binlog_do_db=testdb //指定记录需要复制的数据库名称,如果复制多个数据库,重复设置这个选项即可wq保存
2.在主服务器上创建从服务器的用户和权限
进入mysql数据库,命令如下 (mysql8.0之后分为两步)
1.创建一个远程用户 create user 'root8'@'从库ip' identified with 'mysql_native_password' by '密码'; 2.赋予远程连接的权限 GRANT REPLICATION SLAVE ON *.* TO 'root8'@'从库ip'; 3.刷新权限 FLUSH PRIVILEGES;
查看master信息(下面要用) show master status;
2、配置slave从服务器的mysql
1.在[mysqlId]下新添加
server-id=20 //服务器唯一标识
relay-log=slave-relay-bin //启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。
relay-log-index=slave-relay-bin.indexwq保存
重启service mysql restart
进入mysql命令行
输入命令连接master服务器
mysql> change master to master_host='Master服务器ip',master_port=3306,master_user='用户名',master_password='密码',master_log_file='master_bin.000004',master_log_pos=156; Query OK, 0 rows affected, 2 warnings (0.09 sec)
解释: change master to master_host='ip', // 你的Master服务器ip master_port=3306, // 端口号 master_user='user', // 登陆的用户名 master_password='password' // 设置的密码 master_log-file='master-bin.000002', // 之前让你记住的file master_log-pos=156 // 之前让你记住的position
启动slave
mysql> start slave; Query OK, 0 rows affected (0.02 sec)
查看slave 状态
mysql> show slave status\G (后面没有分号)
只要 Slave_IO_Runging和Slave_SQL_Runing为Yse 就代表连接成功了
可以自己进行测试,主数据库新建个表,看看从数据库是否也有
常见错误之一:
Slave_IO_Running: No
我遇见的是因为数据偏移
解决办法:
先在主库执行:
mysql> flush logs; Query OK, 0 rows affected (0.01 sec) mysql> show master status\G *************************** 1. row *************************** File: mysql-bin.000005 Position: 156 Binlog_Do_DB: Binlog_Ignore_DB: mysql,information_schema,performance_schema Executed_Gtid_Set: 1 row in set (0.00 sec)
再在从库执行
mysql> stop slave; Query OK, 0 rows affected (0.00 sec) mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=156; Query OK, 0 rows affected (0.02 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec)
验证,在从库执行
mysql> show slave status\G
两个都为Yes
更多相关内容 -
部署主从数据库
2022-01-21 18:56:48master_host 为主节点主机名 mysql1, master_user 为上一步中创建的用户 user,命令如下: 配置完毕主从数据库之间的连接信息之后,开启从节点服务。使用 show slave status\G命令,并查看从节点服务状态,如果 ...实验步骤
1.基础环境安装
(1)修改主机名
使用远程连接工具 CRT 连接到 192.168.200.30、 192.168.200.40 这两台虚拟机,并对这两台虚拟机进行修改主机名的操作, 192.168.200.30 主机名修改为 mysql1, 192.168.200.40主机名修改为 mysql2。命令如下:
mysql1 节点:
mysql2 节点:
(2)关闭防火墙及 SELinux 服务
两个节点关闭防火墙 firewalld 及 SELinux 服务,命令如下:
(3)配置 hosts 文件
两个节点配置/etc/hosts 文件,修改为如下:
( 4)配置 YUM 源并安装数据库服务
使用项目 3-Linux 系统与服务构建运维中的方法,挂载 CentOS-7-x86_64-DVD-1511.iso镜像并自行配置 YUM 源,配置完毕后,两个节点安装数据库服务,命令如下:
两个节点启动数据库服务并设置开机自启,命令如下:
2.初始化数据库并配置主从服务
(1)初始化数据库两个节点初始化数据库。
配置数据库 root 密码为 000000,命令如下:
(2)配置 mysql1 主节点
修改 mysql1 节点的数据库配置文件,在配置文件/etc/my.cnf 中的[mysqld]增添如下内容。
重启数据库服务,并进入数据库,命令如下:
在 mysql1 节点,授权在任何客户端机器上可以以 root 用户登录到数据库,然后在主节点上创建一个 user 用户连接节点 mysql2,并赋予从节点同步主节点数据库的权限。命令如下:
(3)配置 mysql2 从节点
修改 mysql2 节点的数据库配置文件,在配置文件/etc/my.cnf 中的[mysqld]增添如下内容。
在从节点 mysql2 上登录 MariaDB 数据库,配置从节点连接主节点的连接信息。
master_host 为主节点主机名 mysql1, master_user 为上一步中创建的用户 user,命令如下:
配置完毕主从数据库之间的连接信息之后,开启从节点服务。使用 show slave status\G命令,并查看从节点服务状态,如果 Slave_IO_Running 和 Slave_SQL_Running 的状态都为YES,则从节点服务开启成功。命令如下:
可以看到 Slave_IO_Running 和 Slave_SQL_Running 的状态都是 Yes,配置数据库主从集群成功。3. 验证数据库主从服务
(1)主节点创建数据库
先在主节点 mysql1 中创建库 test,并在库 test 中创建表 company,插入表 数据,创建完成后,查看表 company 数据,命令如下:
(2)从节点验证复制功能
登录 mysql2 节点的数据库,查看数据库列表。找到 test 数据库,查询表,并查询内容验证从数据库的复制功能,命令如下:
可以查看到主数据库中刚刚创建的库、表、信息,验证从数据库的复制功能成功。本文作为知识分享,不用于任何商业行为。
本文参考《Linux系统与服务构建运维》 -
docker部署主从数据库
2022-01-09 19:05:57前言:在毕设项目所运用到数据库...二、运行主从数据库 #主数据库 master docker run -d -p 3301:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql #从数据库 slave docker run -d -p 3302:3306 --name m前言:在毕设项目所运用到数据库读写分离,主数据库负责写,从数据库负责读,由于云服务器配置问题,就引入一主一从数据库。
一、拉取mysql
docker pull mysql docker images
二、运行主从数据库
#主数据库 master docker run -d -p 3301:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql #从数据库 slave docker run -d -p 3302:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql #查看运行情况 docker ps
IDEA测试连接
三、配置主从数据库
-
master数据库
#进入master docker exec -it mysql-master /bin/bash #切换到/etc/mysql目录下 cd /etc/mysql #先安装vim apt-get update apt-get install vim #使用vim命令修改my.cnf vim my.cnf
编辑my.cnf
[mysqld] #设置server-id,注意要唯一 server-id=1 #开启二进制日志功能 log_bin=mysql-bin #二级制日志格式,有三种 row,statement,mixed binlog-format=ROW #控制binlog日志文件保留时间,超过保留时间的binlog日志会被自动删除 expire_logs_days=7 #同步的数据库,不配的话就是同步所有库 binlog-do-db=test #不同步的数据库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performation_schema binlog-ignore-db=sys
#退出容器 exit #重启容器 docker restart mysql-master
-
slave
#进入slave docker exec -it mysql-slave /bin/bash #切换到/etc/mysql目录下 cd /etc/mysql #先安装vim apt-get update apt-get install vim #使用vim命令修改my.cnf vim my.cnf
编辑my.cnf
[mysqld] #设置server-id,注意要唯一 server-id=2 #relay_log配置中继日志 relay_log=mysql-relay-bin #设置为只读 read_only=1
#退出容器 exit #重启容器 docker restart mysql-slave
四、开启master-slave主从复制
-
master
docker exec -it mysql-master /bin/bash mysql -uroot -p123456
#创建用户 CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; #给用户授权 GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%' WITH GRANT OPTION; #修改加密方式 ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新配置 FLUSH PRIVILEGES; #查看Master状态 show master status;
#退出mysql exit #退出容器 exit #查看本容器的ip docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master 172.17.0.4
-
slave
docker exec -it mysql-slave /bin/bash mysql -uroot -p123456
change master to #主数据库ip master_host='172.17.0.4', #主数据库用户名 master_user='slave', #主数据库密码 master_password='123456', #主数据库端口号 master_port=3306, #日志文件开始复制数据 master_log_file='mysql-bin.000004', #从哪个 Position 开始读,即上文中提到的 Position 字段的值 master_log_pos=708, #如果连接失败,重试的时间间隔 master_connect_retry=30;
#启动slave start slave; #查看slave show slave status \G;
-
如果失败的话,可以从容器IP、端口,用户和密码,Position值
五、测试主从数据库
-
master
-
slave
-
-
如何部署主从数据库
2020-11-10 22:22:45**centos7如何部署主从数据库(详细版)** 步骤: 条件:两台已经安装好centos7的虚拟机 1、基础环境: (1)修改主机名 (2)修改网络设置 (3)关闭防火墙 (4)配置hosts文件 (5)挂载并配置yum源 (6)安装...centos7部署主从数据库(详细版)
步骤:
条件:两台已经安装好centos7的虚拟机
1、基础环境:
(1)修改主机名
(2)修改网络设置
(3)关闭防火墙
(4)配置hosts文件
(5)挂载并配置yum源
(6)安装数据库服务
2、初始化数据库并配置主从服务
(1)初始化数据库
(2)配置master节点
(3)配置slave节点
3、验证数据库的主从服务
实战1:
(1)修改主机名
第一台修改主机名为master
vi /etc/hostname
第二台修改主机名为slave
vi /etc/hostname重新登录:
(2)配置网络
配置master的ip为192.168.200.128
配置slave的ip为192.168.200.129
vi /etc/sysconfig/network-scripts/ifcfg-ens33修改并增加以下内容:(已标注)
重启网卡:
service network restart
出现OK则重启成功
slave主机重复以上步骤并将ip地址修改为:192.168.200.129
完成之后通过ping百度来测试网络:ping baidu.com
以下界面为成功
3、关闭防火墙及selinux服务(两台主机都需要):4、配置hosts文件(两台主机都需要):
vi /etc/hosts
添加 192.168.200.128 master
192.168.200.129 slave
5、配置yum源
(1)确认VM的cd设备已连接(两台都需要)
(2)在opt目录下创建centos文件夹(两台都需要):
mkdir /opt/centos
(3)挂载centos到opt下的centos目录下(两台都需要):
mount /dev/cdrom /opt/centos
查看centos目录下是否有文件
ls /opt/centos(4)查看本地仓库并删除文件(两台都需要):
因为我已经配置过,所以yum.repos.d下只有一个文件
(5)修改local.repo文件(local.repo是新文件,里面没任何东西):
vi local.repo
添加:
[centos7]
name=centos7
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
6、安装数据库服务(两台都需要):
(1)安装数据库服务:
yum install -y mariadb mariadb-server
出现 ‘完毕’ 或者 ‘complete’代表安装成功
(2)启动数据库服务并设置开机自启动:
systemctl start mariadb
systemctl enable mariadb
2、初始化并配置主从服务(两台都需要):
mysql_secure_installation
回车,y,密码,确认密码,y,y,y,y
出现 thanks for using mariadb!表示成功
(1)配置master节点
vi /etc/my.cnf
在【mysqld】添加:
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 128
(2)配置slave节点:
vi /etc/my.cnf
在【mysqld】添加:
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 129
2、重启数据库服务并进入数据库(两台主机都需要):
systemctl restart mariadb
mysql -uroot -p
输入密码(注:密码不可见记得输入正确的密码)在master节点,授权在任何客户机上可以root用户登录到数据库:
grant all privileges on . to root@’%’ identified by “root”;
‘’ ''中间是密码,我设置的密码是root
在master创建一个user用户用于主、从节点的连接,并赋予从节点同步主节点数据库的权限:
grant replication slave on . to ‘user’@‘slave’
identified by ‘root’;
在slave节点上登录MariaDB数据库,配置从节点连接主节点的连接信息。master_host为主节点主机名master,master_user为上一步中创建的用户user:change master to master_host=‘master’,master_user=‘user’,master_password=‘root’;
配置完毕主从数据库之间的连接信息之后,开启从节点服务:
start slave;
查看从节点服务状态:
show slave status\G;
看到 Slave_IO_Running 和 Slave_SQL_Running 的状态都为 Yes,配置数据库主从集群成功。
3、验证
在主节点mysql1中创建库test,并在库test中创建表company,插入表数据,创建完成后,查看表company数据。
从主节点验证复制功能:
可以查看到主数据库中刚刚创建的库、表、信息,验证从数据库的复制功能成功。 -
Centos7 安装mysql部署主从数据库
2021-07-16 14:56:33主从复制 主从复制基本原理 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F9BTCzj7-1626418545214)(C:\Users\vampire\AppData\Roaming\Typora\typora-user-images\image-... -
在Linux上部署主从数据库
2020-11-13 14:54:03如何部署主从数据库 1.规划节点 IP 主机名 192.168.200.10 mysql1 (主) IP 主机名 192.168.200.20 mysql2(从) 2.基础准备 使用本地PC环境的VMWare Workstation软件进行实操练习,镜像使用CentOS-7... -
MySQL 部署主从数据库
2020-01-21 21:05:58借助 Docker 容器部署 MySQL 主从数据库。以下内容涉及路径、端口等可更换内容会额外加以说明。 如果你还没用过 Docker,不妨先看看 Centos7 上安装 MySQL。 操作步骤 创建主从数据库的映射目录。 # 创建主(master... -
主从数据库部署
2020-10-07 10:57:331+x认证 (主从数据库部署) 主从数据库概念地址: 首先,新建虚拟机,我们默认是使用CentOS-7-x86_64-DVD-1511的镜像 镜像地址: 链接:https://pan.baidu.com/s/1Myl_GXnUg7t3OR01mCuMrQ 提取码:1511 ①安装两台... -
Centos7安装主从数据库
2021-12-10 10:42:09基础环境配置 (1) 修改3台主机的主机名及编辑3台集群虚拟机的/etc/hosts文件配置 (2) 配置yum安装源 ...部署MariaDB主从节点数据库集群服务 (1) 安装MariaDB服务 在主从两个虚拟机节点上安装Maria.. -
Docker快速部署mysql主从数据库
2022-01-29 21:21:04主从数据库 安装docker 请参考我的另外一个文章: https://blog.csdn.net/m0_46435741/article/details/121502952 新建主mysql容器实例 创建mysql版本为5.7的容器。 挂载数据卷: 配置文件挂载到主机目录:/mydata/... -
1+X云计算运维与开发初级 部署主从数据库 (脚本) 思维导图
2020-04-11 22:19:421+X云计算运维与开发初级 部署主从数据库 (脚本) 思维导图 // An highlighted block #!/bin/bash ##脚本运行环境,能上网,做服务端 ##基础环境配置,修改主机名,关闭防火墙和SELinuX hostnamectl set-hostname ... -
主从数据库的介绍与部署
2020-08-05 21:24:07部署主从数据库 主从数据库的概念: 主从数据库把数据库架构分为主数据库和从数据库。从数据库是主数据库的备份,这是一个提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时,数据库可以保存。... -
主从数据库
2021-01-27 20:16:131.主从数据库的优点 ① 方便做数据的热备份。 ② 架构的扩展更容易。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。 ③ 读写分离,使数据库能... -
centos6使用docker部署redis主从数据库操作示例
2020-09-08 23:01:11主要介绍了centos6使用docker部署redis主从数据库操作,结合实例形式分析了centos6环境下docker部署redis主从数据库相关命令与使用技巧,需要的朋友可以参考下 -
MySQL数据库主从热备部署心得
2021-06-30 15:07:27本次ESB项目采用的是K8S云平台的部署模式,并且通过7台服务器实现了高可用部署,为了从数据库层面保证系统运行,保证ESB服务流程运行的稳定,所以对数据库采用主从热备的部署方案,并对主从热备的配置方式进行总结。...