docker小白第八天

docker小白第八天

redis常规安装

前期已经配好了阿里云容器镜像加速库

docker search redis
docker pull redis:6.0.8
docker images redis:6.0.8

在这里插入图片描述
启动容器,并进入容器的命令行界面

docker run -d -p 6379:6379 redis:6.0.8
docker ps
docker exec -it 容器id /bin/bash

在这里插入图片描述
验证redis命令

redis-cli
set k1 v1
get k1

在这里插入图片描述

redis高阶安装

1、普通简单的安装在后续的使用可能会出现问题,因此需要在安装过程中进行一些配置。
2、首先删除前文刚刚安装的容器,避免干扰。

docker ps
docker stop 容器id
docker rm -f 容器id

新建个存放redis配置文件的文件夹

mkdir -p /cz/redis
在我的个人目录下新建redis配置存放文件夹

然后去找一个redis.conf文件,如果没有,可以直接先下载一个redis

wget http://download.redis.io/releases/redis-6.0.8.tar.gz
tar -xzvf redis-6.0.8.tar.gz
cd redis-6.0.8
gcc -v  查看gcc版本,redis需要gcc版本为5.3以上
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash  临时将gcc版本修改,退出再进会复原
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 永久修改gcc版本
make install

然后可以用xftp查看此时linux系统内的文件,找到redis.conf,然后将其复制到自己上文新建的文件夹内。
在这里插入图片描述
然后找到这个文件,vim进行编辑。
需要编辑内容如下:
1、开启redis验证,防止中勒索病毒
2、允许redis外地连接,需要注释掉 bind 127.0.0.1
3、将daemonize yes 注释起来或者改为daemonize no,因为该配置和docker run中的-d冲突,会导致容器一直启动失败。
4、开启redis数据持久化 appendonly yes

然后使用redis创建容器

docker run -p 6379:6379 --name myredis --privileged=true -v /cz/redis/redis.conf:/etc/redis/redis.conf -v /cz/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
开启容器卷最高权限,设定端口,挂载容器卷到宿主机上
docker ps
查看容器

此时创建容器成功
在这里插入图片描述
测试redis容器

docker exec -it myredis /bin/bash
redis-cli
set k1 v1
get k1

在这里插入图片描述
测试redis.conf使用了我们修改过的配置文件

select 15  执行成功
select 10  执行成功
select 18  执行失败
因为原始的redis.conf默认select最大选到16

现在我们去修改redis.conf文件,使其select最大选到10。另起一个xshell,直连到linux机器命令行,不进容器命令行界面。找到配置文件

vim redis.conf

找到databases 16,将其修改为databases 10.。然后保存文件,重启redis容器

docker restart myredis
docker exec -it myredis /bin/bash
redis-cli
get k1 验证启动正常
select 15 执行失败了
select 8 执行成功了

docker复杂安装

安装docker主从复制

新建主服务器实例3307
docker run -p 3307:3306 --name mysql-master --privileged=true -v /cz/mydata/mysql-master/log:/var/log/mysql -v /cz/mydata/mysql-master/data:/var/lib/mysql -v /cz/mydata/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
此处是将linux机器的3307端口与容器的3306端口做映射关系
docker ps

在这里插入图片描述

进入mysql的conf目录文件新建my.cnf
cd /cz/mydata/mysql-master/conf

在这里插入图片描述
然后vim my.cnf,进入文件后开始编辑。加入如下代码

[mysqld]
##设置server_id ,同一局域网中需要唯一
server_id=101
##指定不需要同步的数据库名称
binlog-ignore-db=mysql
##开启二进制日志功能
log-bin=mall-mysql-bin
##~设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
##二进制日志过期清理时间。默认值为0∶表示不自动清理
expire_logs_days=7
##跳过主从复制中遇到的所有错误或指定类型的错误﹐避免slave端复制中断。
##如∶1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

在这里插入图片描述
重启主数据库实例

docker restart mysql-master

登录数据库

docker exec -it mysql-master /bin/bash
mysql -uroot -p
创建数据库实例的时候 密码设置的是root
创建用于主从同步的用户slave

创建用户并授予一定的权限,下文在从数据库做开启主从同步设置时会用到这个用户。

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ' slave'@'%';

在这里插入图片描述

新建从服务器3308
docker run -p 3308:3306 --name mysql-slave --privileged=true -v /cz/mydata/mysql-slave/log:/var/log/mysql -v /cz/mydata/mysql-slave/data:/var/lib/mysql -v /cz/mydata/mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
此处是将linux机器的3308端口与容器的3306端口做映射关系
docker ps

在这里插入图片描述

进入从数据库的conf目录中配置my.cnf
cd cz/mydata/mysql-slave/conf
vim my.cnf

在my.cnf加入以下

[mysqld]
##设置server_id ,同一局域网中需要唯一
server_id=102
##指定不需要同步的数据库名称
binlog-ignore-db=mysql
##开启二进制日志功能,以备slave作为其他数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin
##~设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
##二进制日志过期清理时间。默认值为0∶表示不自动清理
expire_logs_days=7
##跳过主从复制中遇到的所有错误或指定类型的错误﹐避免slave端复制中断。
##如∶1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
##relay_logi配置中继日志
relay_log=mall-mysql-relay-bin
##log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
##slave设置为只读(具有super权限的用户除外)
read_only=1

重启slave实例
docker restart mysql-slave

在主数据库中查看主从同步状态

docker exec -it mysql-master /bin/bash
mysql -uroot -p
输入密码root
show master status;

可以看到主数据库相关的同步信息
在这里插入图片描述
另起一个xshell连接linux虚机,进入mysql-slave里查看主从同步状态。

docker exec -it mysql-slave /bin/bash
mysql -uroot -p
输入密码root
show master status;

从数据库内执行下命令,进行主从复制,其中各参数依据前文在主数据库查询到的信息填写。

change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000002', master_log_pos=154, master_connect_retry=30;
# master_host:主数据库的IP地址;
# master_port:主数据库的运行端口;
# master_user:在主数据库创建的用于同步数据的用户账号;
# master_password:在主数据库创建的用于同步数据的用户密码;
# master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
# master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
# master_connect_retry:连接失败重试的时间间隔,单位为秒。

从数据库查看主从同步状态

show slave status \G

关注下列两个slave,代表还没开始同步
在这里插入图片描述
从数据库中开启主从同步,启动在主数据库中创建的slave用户,并在此查看主从同步状态。

start slave;
show slave status \G

可看到已经开启了主从同步
在这里插入图片描述

主从复制测试

在主数据库新建库-使用库-新建表-插入数据,在从数据库查看记录或数据是否同步。

# 主数据库执行如下命令:
show databases;查看当前的库
create database db01;创建新库
use db01; 使用新库
create table t1(id int,name varchar(20));创建新表t1
insert into t1 values(1.'cz'); 插入数据
select * from t1; 查询t1下的数据

在这里插入图片描述
在从机执行如下命令查看

use db01;看是否已同步到了数据库db01
select * from t1; 可以看到从机中也查询到了数据

证明主从同步已经完成了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/273880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

202362读书笔记|《茉莉花》——时间滤去一切伤痛,让智慧和美好永垂不朽

202362读书笔记|《茉莉花》——时间滤去一切伤痛,让智慧和美好永垂不朽 《茉莉花》作者卓凌,插图美,文字也好读的一本诗集,很值得一读! 部分节选如下: 生活是一列穿山越岭的火车;享受过程&#…

老用户可买:腾讯云轻量应用服务器2核2G4M带宽118元一年,3年540元

它急了,腾讯云急了,继阿里云推出99元新老用户同享的云服务器后,腾讯云轻量应用服务器2核2G4M配置也支持新老用户同享了,一年118元,3年540元,老用户也能买,50GB SSD系统盘,300GB 月流…

计算机毕业设计 基于SpringBoot的高校竞赛管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

模式识别与机器学习-特征选择和提取

模式识别与机器学习-特征选择和提取 特征选择一些距离测度公式独立特征的选择准则一般特征的散布矩阵准则 离散K-L变换 谨以此博客作为复习期间的记录。 常见分类问题的流程,数据预处理和特征选择提取时机器学习环节中最重要的两个流程。这两个环节直接决定了最终性…

初见 Amazon Q

前言 如果今年要写一篇年终总结的话,生成式 Ai 一定是绕不过的一个话题,自从去年的 chatGPT 火爆全球后,今年各种生成式 Ai 的产品络绎不绝地出现大众视线,版本迭代的速度也是非常快,大家甚至开始在自己的生活和工作中…

SpringBoot整合Spring-Security 认证篇(保姆级教程)

本文项目基于以下教程的代码版本: https://javaxbfs.blog.csdn.net/article/details/135195636 代码仓库: https://gitee.com/skyblue0678/springboot-demo 为了跟shiro区别开,新建了一个分支: 目录 🌹1、友善问候一下 Spring …

【HBase】——简介

1 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 2 HBase 数据模型 • HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排序 m…

万字长文谈自动驾驶bev感知(一)

文章目录 prologuepaper listcamera bev :1. Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D2. M2BEV: Multi-Camera Joint 3D Detection and Segmentation with Unified Birds-Eye View Representation3. BEVDet: High-Pe…

Oracle开发经验总结

文章目录 1. 加注释2. 增加索引3. nvl(BOARDCODE&#xff0c;100)>004. 去掉distinct可以避免hash比较&#xff0c;提高性能5. like模糊查询优化(转化为instr()函数)6. SQL计算除数为0时&#xff0c;增加nullif判断7. 分页8. 查看执行计划9. <if test"productCode !…

231227-9步在RHEL8.8配置本地yum源仓库

Seciton 1&#xff1a;参考视频 RHEL8配置本地yum源仓库-安徽迪浮_哔哩哔哩_bilibili Seciton 2&#xff1a;具体操作 &#x1f3af; 第1步&#xff1a;查看光驱文件/dev/sr0是否已经挂载&#xff1f;此处已挂在 [lgklocalhost ~]$ df -h &#x1f3af; 第1步&#xff1a;查看…

SQL语句中的函数和高级语句

目录 SQL语句中的函数 数学函数 聚合函数 字符串函数 SQL语句中的高级语句 SELECT ​编辑 DISTINCT ​编辑 WHERE AND OR IN BETWEEN 通配符 LIKE ORDER BY GROUP BY HAVING 别名 子查询 EXISTS 连接查询 UNION 交集值 无交集值 视图 SQL语句中的函数 数学函数 abs…

[Ray Tracing: The Next Week] 笔记

前言 本篇博客参照自《Ray Tracing: The Next Week》教程&#xff0c;地址为&#xff1a;https://raytracing.github.io/books/RayTracingTheNextWeek.html 该教程在ray tracing in one weekend的基础上&#xff0c;增加了运动模糊、BVH树、Texture映射、柏林噪声、光照、体积…

SOA架构介绍与简单代码示例

1.SOA架构介绍 SOA (Service Oriented Architecture)“面向服务的架构":是一种设计方法&#xff0c;其中包含多个服务&#xff0c;服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用。 微服务架构80%…

开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)

背景 大多数现有的对象检测模型都经过训练来识别一组有限的预先确定的类别。将新类添加到可识别对象列表中需要收集和标记新数据&#xff0c;并从头开始重新训练模型&#xff0c;这是一个耗时且昂贵的过程。该大模型的目标是开发一个强大的系统来检测由人类语言输入指定的任意…

深入了解Python中文件IO的使用技巧,提高代码处理效率!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python提供了强大而灵活的文件I/O&#xff08;输入/输出&#xff09;工具&#xff0c;能够读取、写入和处理各种文件类型。本文将深入介绍Python文件I/O的技巧和示例代码&#xff0c;帮助大家更好地理解如何在Py…

Swift 周报 第四十二期

文章目录 前言新闻和社区苹果 CEO 库克透露接班计划&#xff0c;希望继任者来自公司内部消息称苹果自研 5G 调制解调器开发再“难产”&#xff0c;将推迟到 2026 年 提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第四十二期&…

【Tensor张量】AI模型的信息流通货币

官方解释https://www.tensorflow.org/guide/tensor?hl=zh-cn 1.Tensor的概念理解 如果大模型是一个会运行的城市工厂,那么Tensor就是 运输车! 如果大模型是计算机,那么Tensor就是硬盘。 负责深度学习数据的运输和存储!把数据送给AI模型进行训练,AI模型推理后的数据也…

机器学习中的强学习器:AdaBoost算法详解

目录 1. 引言 2. AdaBoost的基本概念 2.1 弱学习器 2.2 错误率与权重更新 3. AdaBoost的工作流程 3.1 初始化权重 3.2 训练弱学习器 3.3 更新样本权重 3.4 构建强学习器 4. AdaBoost的优缺点 4.1 优点 4.2 缺点 5. 应用场景 5.1 图像识别 5.2 语音处理 5.3 生物…

Hive安装笔记——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码&#xff0c;使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变&#xff0c;同时添加静态分区&#xff0c;分区字段为etl_date&#xff0c;类型为String&am…

Python实现张万森下雪了的效果

写在前面 即将步入婚宴殿堂的女主林北星&#xff0c;遭遇了男友展宇的毁约&#xff0c;生活和工作也变得一团糟。与此同时&#xff0c;她被时光老人带回了十八岁的高三时光&#xff0c;重新开启了自己的人生。林北星摆脱了展宇的束缚&#xff0c;认真准备高考&#xff0c;想要…
最新文章