从零开始学docker(四)-安装mysql及主从配置(一)

mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

mysql架构图

引擎

MySQL中的存储引擎层主要负责数据的写入和读取,与底层的文件进行交互。值得一提的是,MySQL中的存储引擎是插件式的,服务器中的查询执行引擎通过相关的接口与存储引擎进行通信,同时,接口屏蔽了不同存储引擎之间的差异。MySQL中,最常用的存储引擎就是InnoDBMyISAM

mysql支持的引擎

查询数据库使用引擎命令:

show ENGINES;

image-20230819165440162

查询存储引擎

mysql> show variables like '%storage_engine';
+---------------------------------+-----------+
| Variable_name                   | Value     |
+---------------------------------+-----------+
| default_storage_engine          | InnoDB    |
| default_tmp_storage_engine      | InnoDB    |
| internal_tmp_mem_storage_engine | TempTable |
+---------------------------------+-----------+
InnoDB与MyISAM的区别
特性InnoDBMyISAM
事务安全支持
存储限制64TB
空间使用
内存使用
插入数据的速度
对外键的支持支持

mysql安装

在docker容器中安装mysql数据库。

mysql挂载文件夹

在/usr/local/先创建software文件夹,再在software下创建mysql文件夹,文件结构如下

image-20230728145745467

创建配置目录

 mkdir -p /usr/local/software/mysql

image-20230702110414612

切换文件夹到mysql,并创建三个子文件夹,子文件夹中创建 conf, data 子文件夹

[root@localhost ~]# cd /usr/local/software/mysql
[root@localhost mysql]# pwd
/usr/local/software/mysql
[root@localhost mysql]# mkdir -p 3306/conf 3306/data
[root@localhost mysql]# mkdir -p 3310/conf 3310/data
[root@localhost mysql]# mkdir -p 3311/conf 3311/data
[root@localhost mysql]# ll
总用量 0
drwxr-xr-x. 4 root root 30 72 11:11 3306
drwxr-xr-x. 4 root root 30 72 11:08 3310
drwxr-xr-x. 4 root root 30 72 11:09 3311

拷贝my.cnf文件到conf文件夹下

image-20230702111803189

查询拉取mysql镜像

查询镜像

docker search mysql

image-20230702114159143

拉取mysql镜像到本地(linux)

docker pull 镜像名称:版本号

docker pull mysql

image-20230702114555961

查询镜像检查是否已下载到本地

docker image ls

image-20230702114812040

创建运行mysql主(master)容器

创建容器并运行
序列参数解释
1-i以交互模式运行容器
2-t为容器重新分配一个伪输入终端
3–name容器名称
4–privileged设置容器公开权限(默认为true)
5-p:映射端口 容器内置端口(mysql默认端口为3306)
6–network自定义的docker网络名称
7–ip自定义网络中的ip地址
8-vlinux挂载文件夹/文件和容器内路径的映射
9-e容器的环境变量(设置mysql默认用户名&密码)
10-d后台运行容器,并返回容器ID

tips: ff_docket_net是之前自定义的docker网络。
并定义当前容器的ip是172.18.0.2(ip地址可以安装自定义的网络自行分配)。

docker run -it \
--name mysql_3306 \
--privileged \
-p 3306:3306 \
--network ff_docket_net \
--ip 172.18.0.2 \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123 \
-d mysql
进入容器

进入容器实质上也是进入了一个linux环境。

docker exec

  • -it:以交互模式运行容器 ,为容器重新分配一个伪输入终端。
  • bash: bash(GNU Bourne-Again Shell)是最常用的一种shell(运行在终端的互动程序)。
 docker exec -it mysql_3306 bash

image-20230702155152141

容器中运行mysql客户端

登录mysql客户端: mysql -u用户名 -p密码

如果登录成功,则docker安装mysql成功。

image-20230702155350143

image-20230702155543714

查看容器内部ip

[root@localhost conf]# docker inspect mysql_3306 |grep IPA"SecondaryIPAddresses": null,"IPAddress": "","IPAMConfig": {"IPAddress": "172.18.12.2",
退出容器,防火墙开放端口
退出容器

容器内: exit

root@1b32ebb973d1:/# exit
开放指定端口

firewall-cmd --zone=public --add-port=端口号/tcp --permanent

zone: public 公开端口

add-port: 端口号/协议名称

permanent: 永久开放

firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载防火墙

firewall-cmd --reload

 firewall-cmd --reload 
查看开放的端口号

firewall-cmd –

[root@localhost conf]# firewall-cmd --zone=public --list-ports 
3306/tcp

navicat测试连接

image-20230702161720102

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDC.2024】华为云Astro低代码平台开启AI敏捷组装时代,探索低代码创新无限可能

6月22日,华为开发者大会2024期间,华为云举办了以“敏捷组装时代来临「高低零码智能协同」加速行业创新”为主题的Astro低代码平台专题论坛。论坛汇聚了业界精英和专家学者,共同探讨低代码技术在推动企业数字化转型中的重要实践及未来发展趋势…

cs与msf权限传递,与mimikatz抓取win2012明文密码

CS与MSF的权限互相传递抓取windows2012的明文密码 CS与MSF的权限互相传递 1、启动cs服务端 2、客户端连接 3、配置监听,并设置监听端口为9999 4、生成脚本 5、开启服务,下载并运行木马 已获取权限 6、进入msf并设置监听 7、cs新建监听,与m…

【Linux】UDP协议

目录 传输层端口号netstat端口号范围划分认识知名端口号(Well-Know Port Number) UDP协议UDP协议端格式UDP的特点UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 传输层 通过前面文章对于应用层的讲解,我们知道应用层主要是将我们的数据按照协议的格式进行划分&am…

注册安全分析报告:PingPong

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

Day15 —— 大语言模型简介

大语言模型简介 大语言模型基本概述什么是大语言模型主要应用领域大语言模型的关键技术大语言模型的应用场景 NLP什么是NLPNLP的主要研究方向word2vecword2vec介绍word2vec的两种模型 全连接神经网络神经网络结构神经网络的激活函数解决神经网络过拟合问题的方法前向传播与反向…

【Linux】锁|死锁|生产者消费者模型

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ ​ 访问互斥 …

力扣-两数之和

文章目录 题目题解方法1-暴力方法2-哈希 题目 原题链接:两数之和 题解 方法1-暴力 我最先想到的方法就是暴力,两层for循环,也能通过。(拿到算法题在没有思路的时候暴力就是思路,哈哈哈) public class T…

【STM32-存储器映射】

STM32-存储器映射 ■ STM32F1-4G地址空间分成8个块■ STM32F1-Block0■ STM32F1-Block1■ STM32F1-Block2■ STM32F1- ■ STM32F1-4G地址空间分成8个块 ■ STM32F1-Block0 有出厂 BootLoader 就可以使用串口下载程序。如Keil5图中IROM地址是0x8000000 开始 就是flash地址 ■ S…

2-17 基于matlab的改进的遗传算法(IGA)对城市交通信号优化分析

基于matlab的改进的遗传算法(IGA)对城市交通信号优化分析。根据交通流量以及饱和流量,对城市道路交叉口交通信号灯实施合理优化控制,考虑到交通状况的动态变化,及每个交叉口的唯一性。通过实时监测交通流量&#xff0c…

代码随想录-Day41

46. 携带研究材料(第六期模拟笔试) 题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实…

GroundingDINO1.5突破开放式物体检测界限:介绍与应用

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

小程序 UI 风格,引人入胜

小程序 UI 风格,引人入胜

如何基于项目人力和管线方案选择FGUI和UGUI

1)如何基于项目人力和管线方案选择FGUI和UGUI 2)TMP字体出包丢失字体描边 3)如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用 4)为什么我的水这么干净,和UE教程里的有差别 这是第390篇UWA技术知识分享的…

Handling `nil` Values in `NSDictionary` in Objective-C

Handling nil Values in NSDictionary in Objective-C When working with Objective-C, particularly when dealing with data returned from a server, it’s crucial (至关重要的) to handle nil values appropriately (适当地) to prevent unexpected crashes. Here, we ex…

2024年最新通信安全员考试题库

61.架设架空光缆,可使用吊板作业的情况是()。 A.在2.2/7规格的电杆与墙壁之间的吊线上,吊线高度5m B.在2.2/7规格的墙壁与墙壁之间的吊线上,吊线高度6m C.在2.2/7规格的电杆与电杆之间的吊线上,吊线高度…

ChatGPT API技术教程OpenAI APIKey在线对接-Chat Completion对象

表示模型根据提供的输入返回的聊天完成响应。 {"id": "chatcmpl-123","object": "chat.completion","created": 1677652288,"model": "gpt-3.5-turbo-0125","system_fingerprint": "fp…

solidity智能合约如何实现跨合约调用函数

背景 比如现在有一个需求、我需要通过外部合约获取BRC20 token的总交易量。那么我需要在brc20的转账函数里面做一些调整,主要是两个函数内统计转移量。然后再提供外部获取函数。 /*** dev Sets amount as the allowance of spender over the callers tokens.** Ret…

【ai】tx2-nx:安装深度学习环境及4.6对应pytorch

参考:https://www.waveshare.net/wiki/Jetson_TX2_NX#AI.E5.85.A5.E9.97.A8 英伟达2021年发布的的tritionserver 2.17 版本中,backend 有tensorflow1 和 onnxruntime ,他们都是做什么用的,作为backend 对于 triton 推理server意义是什么,是否应该有pytorch? Triton Infer…

数据分析必备:一步步教你如何用matplotlib做数据可视化(13)

1、Matplotlib 文本 Matplotlib具有广泛的文本支持,包括对数学表达式的支持,对光栅和矢量输出的TrueType支持,具有任意旋转的换行符分隔文本以及unicode支持。Matplotlib包含自己的matplotlib.font_manager,它实现了一个跨平台&a…

modelsim做后仿真的一点思路

这是以TD_5.6.3_Release_88061生成的网表文件(其他工具生成的网表文件类似),与modelsim联合进行门级仿真的样例,时序仿真与门级仿真的方法类似,只是增加了标准延时文件。 1、建立门级仿真工程 将门级网表和testbench添…