从零开始学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.mzph.cn/news/861244.shtml

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

相关文章

线性代数基础概念:行列式

目录 线性代数基础概念:行列式 1. 行列式的定义 1.1 递归定义 1.2 代数余子式定义 1.3 几何定义 2. 行列式的性质 2.1 行列式等于其转置的行列式 2.2 交换两行或两列,行列式变号 2.3 将一行或一列乘以一个数 k,行列式乘以 k 2.4 将…

【Java】Java序列化和反序列化

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 # Java中的序列化和反序列化 在Java中,序列化是将对象的状态写入字节流的机制。它主要用于Hibernate…

【活动】搜维尔科技携Xsens邀您出席世界人工智能大会

展会介绍 由外交部、国家发展改革委、教育部、科技部、工业和信息化部、国家网信办、中国科学院、中国科协和上海市政府共同主办的世界人工智能大会(WAIC),将于7月4日-7日在上海举行。围绕“以共商促共享 以善治促善智”主题,打造…

VNode是什么?

什么是VNode VNode的全称是Virtual Node,也就是虚拟节点.它是指一个抽象的节点对象,用于描述真实DOM中的元素。在前端框架中,通过操作VNode来实现虚拟DOM,从而提高性能。 VNode的本质 本质上是JavaScript对象,这个对象就是更加轻量级的对DOM…

越有水平的领导,越擅长用这3个字来管人,怪不得执行力强

越有水平的领导,越擅长用这3个字来管人,怪不得执行力强 第一个字:“实” 要想提高执行力,必须发扬务实、实干、刻苦勤勉的工作精神。纸上谈兵,夸夸其谈的事情少做,多行动,少说话。 沉浸在表面…

打破数据分析壁垒:SPSS复习必备(十一)

一、方差分析 方差分析的应用条件如下: (1)独立,各组数据相互独立,互不相关; (2)正态:即各组数据符合正态分布; (3)方差齐性&…

多线程思维导图

多线程 线程是一个程序内部的一条执行流程 多线程的好处————消息通信,网页浏览等等 多线程是指从软硬件上实现多条执行流程的技术 并发和并行同时执行 多线程的创建 Java.Long包下的Thread类 定义一个子类…

突然断供中国!OpenAI变CloseAI,用户连夜搬家

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 OpenAI,这把变成CloseAI了。 6月25日早上,有中国开发者表示收到了来自OpenAI的“警告信”:将采取额外措施停止其不支持的地区的API(应用接口&#xff09…

我对AI赋能的未来畅想

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

【Java Web】XML格式文件

目录 一、XML是什么 二、常见配置文件类型 *.properties类型: *.xml类型: 三、DOM4J读取xml配置文件 3.1 DOM4J的使用步骤 3.2 DOM4J的API介绍 一、XML是什么 XML即可扩展的标记语言,由标记语言可知其基本语法和HTML一样都是由标签构成的文件…

springboot vue 开源 会员收银系统 (8) 收银台、开卡结算及订单的优化升级

前言 完整版演示 开发版演示 在之前的开发进程中,我们基本搭建了收银台的基础。这次着重梳理一下收银台相关功能的开发及优化情况。 1.会员查询与开卡 收银台新增加了会员筛选功能 并且会员和会员卡是一对多的关系 理论可以开无数张卡 默认选择一张卡 会员卡选择…

stm32学习笔记---TIM输出比较(代码部分)PWM驱动LED呼吸灯/舵机/直流电机

目录 第一个工程:PWM驱动LED呼吸灯 PWM.c 初始化PWM步骤 TIM的库函数 TIM_OCStructInit TIM_CtrlPWMOutputs TIM_CCxCmd和TIM_CCxNCmd TIM_SelectOCxM 四个单独更改CCR寄存器值的函数 四个初始化定时器的通道的函数 给结构体一次性都赋初始值的函数 如何…

从写下第1个脚本到年薪40W,我的测试开发心路历程!

对于任何职业来说,薪资始终都会是众多追求的重要部分。前几年测试行业还是风口,但是随着不断新鲜血液的加入,再加上就业大环境不好,企业也都在“降本增效”。目前内卷也是越来越激烈。不得不承认当下的现状,已经不仅仅…

引导过程与服务器控制

一、引导过程 1.开机自检 服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit, 中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移 交系统控制权&#xff0c…

AI X HI:塑造数智时代的人类镜像,网易这场分享不能错过!

2001 年,网易正式成立在线游戏事业部。从那以后,网易孵化了许多出圈的精品游戏,跻身成为全球七大游戏公司之一。这些游戏产品之所以能够广受玩家好评,并保持常青,一方面源于十年磨一剑的精良品质,另一方面则…

[油猴脚本] Image To Ascii 快速转换审计网站图片中敏感信息插件

项目地址:https://github.com/MartinxMax/ImageToAscii 导入 将ImagetoAscii.user.js导入油猴 进行按照 访问网站分析图片 当鼠标靠近图片时会出现分析按钮 通过审查图片信息,我们可以快速发现这张图片存在PHP代码。 当然在渗透测试中,你可以快速查看上传的图片木马中PHP代码…

PS系统教程30

图层蒙版组合使用 案例介绍 全选背景图-复制背景图粘贴背景图CtrlI反选背景色填充黑色快速选区工具框柱需要素材画笔涂抹白色 步骤截图 1-3 4-5 图层蒙版与渐变工具结合使用 案例2 注意 使用PS的渐变工具覆盖全部的原因可能包括操作不当或设置错误。 操作不当&#xff1…

C++系列-String(三)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” assign 这个接口的目的是用一个新的值代替之前的那个值 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<list> #include&l…

华三交换机的软件版本升级操作

升级操作很常见&#xff0c;掌握方法是关键 实验环境&#xff1a;1台华三S6520-EI交换机&#xff0c;版本从2432P03升级成2432P05。 整体思路&#xff1a; 1.先查验软件版本 2.官网下载对于设备型号的软件版本 3.配置交换机地址使得与电脑进行通信&#xff0c;使用TFTP/FTP工…

Swift 周报 第五十五期

文章目录 前言新闻和社区苹果公司据悉将推出密码管理应用三大指数涨跌不一&#xff0c;苹果重新夺回美股第二大上市公司宝座苹果iOS 18新动向&#xff1a;AI功能强化隐私保护&#xff0c;用户自主选择启用 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言…