当前位置: 首页 > news >正文

尚硅谷谷粒商城项目笔记——五、使用docker安装mysql

五、使用docker安装mysql

注意:

因为电脑是AMD芯片,自己知识储备不够,无法保证和课程中用到的环境一样,所以环境都是自己根据适应硬件软件环境重新配置的,这里的虚拟机使用的是VMware。
使用 Docker 安装 MySQL 与安装 Redis 类似,以下是详细步骤:

1拉取 MySQL 镜像:

从 Docker Hub (之前有设置之镜像加速)拉取 MySQL 的官方镜像。可以指定版本号,或者使用 latest 来获取最新版本:

docker pull mysql:latest

2运行 MySQL 容器:

运行 MySQL 容器时,我需要设置环境变量,如 MYSQL_ROOT_PASSWORD(root 用户的密码),并映射端口和数据卷。以下是一个示例命令:

docker run --name some-mysql -p 3306:3306 \-v /var/lib/mysql:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=my-secret-pw \-e MYSQL_DATABASE=mydb \-e MYSQL_USER=myuser \-e MYSQL_PASSWORD=mypassword \--restart always -d mysql

[!NOTE]

注意这里的密码的值不要使用root,否则会产生error==>>问题在于我在运行 MySQL 容器时同时设置了 MYSQL_USERMYSQL_PASSWORD 环境变量,但它们的值被设置为了 root。对于 MySQL 容器,MYSQL_USERMYSQL_PASSWORD 是用来配置普通用户的,而不能用来配置 root 用户。对于 root 用户的密码,我应该只使用 MYSQL_ROOT_PASSWORD 环境变量。

参数说明:

  • --name some-mysql:为容器指定一个名称。
  • -p 3306:3306:将容器的 3306 端口映射到宿主机的 3306 端口。
  • -v /var/lib/mysql:/var/lib/mysql:将宿主机的 /var/lib/mysql 目录挂载到容器的 /var/lib/mysql 目录,实现数据持久化。
  • -e:设置环境变量,用于配置 MySQL。
  • --restart always:确保容器在 Docker 重启后自动启动。
  • -d mysql:以 detached 模式运行 MySQL 容器。

3确认 MySQL 容器正在运行:

使用 docker ps 命令检查 MySQL 容器是否成功启动:

docker ps

4连接到 MySQL 服务器:

可以使用 mysql 命令行工具连接到 MySQL 服务器:

mysql -uroot -p

当提示输入密码时,输入我在步骤 2 中设置的 MYSQL_ROOT_PASSWORD

[!NOTE]

可以直接使用 Docker 容器中的 MySQL 服务,但是我需要确保宿主机上安装了 MySQL 客户端,或者可以直接在 Docker 容器的命令行中使用 mysql 命令。以下是两种方法:【我是用第二种】

方法一:在宿主机上使用 MySQL 客户端连接到 Docker 容器中的 MySQL 服务

  1. 确保我已经在宿主机上安装了 MySQL 客户端。如果没有,请根据我的 Linux 发行版安装它。

  2. 使用以下命令连接到 Docker 容器中的 MySQL 服务:

    mysql -uroot -p -h 127.0.0.1 -P 3306
    

    这里 -h 127.0.0.1 指定了宿主机的 IP 地址,-P 3306 指定了映射到宿主机的端口号。

  3. 当提示输入密码时,输入我在创建 MySQL 容器时设置的 MYSQL_ROOT_PASSWORD

方法二:在 Docker 容器的命令行中使用 mysql 命令

  1. 首先,找到我的 MySQL 容器 ID 或名称:

    docker ps
    
  2. 然后,使用 docker exec 命令进入容器的命令行界面:

    docker exec -it some-mysql /bin/bash
    

    some-mysql 替换为我的 MySQL 容器名称。

  3. 在容器内部,直接使用 mysql 命令连接到 MySQL 服务:

    mysql -uroot -p
    

    由于我已经在容器内部,不需要指定主机和端口,只需输入密码即可。

请注意,如果我在容器内部使用 mysql 命令,我将直接与 MySQL 服务交互,而不需要在宿主机上安装 MySQL 客户端。但是,这种方法要求我能够进入容器的命令行界面。如果我只需要偶尔管理 MySQL 数据库,通常在宿主机上安装 MySQL 客户端会更方便。

退出mysql容器时用exit命令

5配置 MySQL 时区(可选):

MySQL 容器默认使用 UTC 时区。如果我需要更改时区,可以在启动容器时挂载自定义的 my.cnf 配置文件:

docker run ... -v /mycustomconfig/my.cnf:/etc/mysql/my.cnf ...

my.cnf 文件中,可以添加如下配置来设置时区:

[mysqld]
default-time-zone='+08:00'

6安全配置 MySQL(可选):

MySQL 提供了一个脚本来设置安全选项,可以在第一次启动时运行它:

docker exec -i some-mysql mysql_secure_installation

按照提示操作,设置移除匿名用户、禁止 root 用户远程登录等安全选项。

大学生制作不易,各位愿意的话可以打赏,不愿意的话也没关系,学习最重要。最后,哪里写的不合适请告诉我,我弄明白后再修正,谢谢!

相关文章:

尚硅谷谷粒商城项目笔记——五、使用docker安装mysql

五、使用docker安装mysql 注意: 因为电脑是AMD芯片,自己知识储备不够,无法保证和课程中用到的环境一样,所以环境都是自己根据适应硬件软件环境重新配置的,这里的虚拟机使用的是VMware。 使用 Docker 安装 MySQL 与安…...

filebeat + logstash使用笔记

背景 本文中有2台主机: (1)1.1.1.1是OpenStack的nova节点,安装filebeat (2)1.1.1.2是logstash节点 在1.1.1.1上通过filebeat读取OpenStack的nova-compute组件日志(/var/log/nova/nova-compute.…...

学校考场电子钟设置自动开关机,节能环保

在标准化考试中,准确的时间显示对于确保考试的公正性和秩序至关重要。然而,传统的电子钟系统往往存在一些问题,影响了考试管理的效率。 一、学校普通电子钟使用问题 二、学校考场电子钟优点 学校同步时钟系统通过自动同步网络或卫星时间的方式…...

短剧APP系统开发带来了哪些发展空间?

在影视行业快速发展的时期,短剧作为一种新兴的影视模式,获得了大众的欢迎。目前,短剧行业巨大的发展空间,再次成为大众关注的焦点。 随着移动互联网的发展,信息技术不断升级进步,短剧APP系统的开发&#x…...

PaddlePaddle / PaddleOCR踩坑记,动手实现一个OCR服务器

文章目录 一、环境搭建1、官网2、准备环境 二、编码实现一个web程序 一、环境搭建 1、官网 https://gitee.com/paddlepaddle/PaddleOCR#/paddlepaddle/PaddleOCR/blob/main/doc/doc_ch/quickstart.md 2、准备环境 本地环境坑太多了,好在官网还有一种基于docker搭…...

JeecgBoot低代码平台简单记录

BasicModal弹窗 Usage 由于弹窗内代码一般作为单文件组件存在,也推荐这样做,所以示例都为单文件组件形式 注意v-bind"$attrs"记得写,用于将弹窗组件的attribute传入BasicModal组件 attribute:是属性的意思,…...

零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)

零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因) 目录 零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)1. xgboost基础知识2. xgboost(Rstudio)——代码实操2. 1 数据…...

C#开发常见面试题三(浅复制和深复制的区别)

C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 (1)浅复制:复制一个对象的时候,仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。(新对象和原对象将共享所有引用类型成员的实…...

Linux/C 高级——Linux命令

从这里开始,我们展开对Linux/c 高级的学习,首先介绍的是在Linux/c高级中,Linux的部分 目录 1.Linux简介 1.1Linux起源 1.2查看系统版本命令 1.3分层结构 1.4系统关机重启命令 2.Linux安装工具 2.1软件包安装 2.1.1软件包的管理机制 …...

怎么在 tailwindcss 项目中自定义一些可复用的样式

在 Tailwind CSS 项目中自定义可复用的样式有几种常用方法: 使用 apply 指令 你可以在 CSS 文件中使用 apply 指令来创建可复用的样式类: layer components {.btn-primary {apply py-2 px-4 bg-blue-500 text-white font-semibold rounded-lg shadow-md hover:bg-blue-700 f…...

在vue3中 引入echarts

安装&#xff1a;npm install echarts --save 方式一&#xff1a;直接在组件中引用 <template><divref"myChart"id"myChart":style"{ width: 800px, height: 400px }"></div></template><script>import * as echa…...

栈和队列(数据结构)

1. 栈(Stack) 1.1 概念 栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO &#xff08; Last In First Out &#xff09;的原…...

如何实现ElementUI表单项label的文字提示?

在Vue和ElementUI的丰富组件库中,定制化表单是常见的需求之一。那么如何在表单项label后添加文字提示,以提升用户体验呢? 首先我们来看一下效果图: 这里我们鼠标移动到❓图标上就会出现提示 在 ElementUI 中,el-form-item 组件允许使用 slot 自定义 label。通过在 el-fo…...

c++中的标准库

前言 hello&#xff0c;我是文宇。 正文 C标准库是C编程语言的基本组成部分之一&#xff0c;它为开发人员提供了一套丰富和强大的工具和功能&#xff0c;以便快速开发高效、可靠和可移植的应用程序。C标准库由两个主要部分组成&#xff1a;STL&#xff08;Standard Template…...

洛谷 B2145 digit 函数 B2146 Hermite 多项式 题解

题目目录&#xff1a; No.1 B2145 digit 函数 No.2 B2146 Hermite 多项式 OK&#xff0c;开始正文&#xff01; 第一题&#xff1a;B2145 digit 函数 题目描述 在程序中定义一函数 digit(n,k)&#xff0c;它能分离出整数 n 从右边数第 k 个数字。 输入格式 正整数 n …...

tailwindcss @apply 和 @layer 有什么区别

在 Tailwind CSS 中&#xff0c;apply 和 layer 是两个不同的指令&#xff0c;它们各自有不同的用途和功能。以下是它们的区别和使用方法&#xff1a; apply 指令 apply 指令用于将一组现有的 Tailwind CSS 工具类应用到一个自定义的 CSS 类中。这对于简化和复用复杂的样式非…...

React 中的 useMemo 和 useCallback

1. useMemo语法 const memoizedValue useMemo(() > computeExpensiveValue(a, b), deps); 1. 传入一个函数进去&#xff0c;会返回一个 memoized 值&#xff0c;需要注意的是&#xff0c;函数内必须有返回值&#xff1b; 2. 第二个参数会依赖值&#xff0c;当依赖值更新…...

idea社区版lombok总是突然失效:log未知的变量

用maven打包运行就没问题&#xff0c;就是idea的原因 有这么个参数 -Djps.track.ap.dependenciesfalse 是用来配置 IntelliJ IDEA 的 JVM 参数&#xff0c;它控制着 IntelliJ IDEA 是否跟踪处理器相关的依赖关系。具体来说&#xff0c;-Djps.track.ap.dependenciesfalse 参数的…...

Java语言程序设计基础篇_编程练习题*16.13(比较不同利率的贷款)

目录 题目&#xff1a;*16.13&#xff08;比较不同利率的贷款&#xff09; 习题思路 代码示例 结果展示 题目&#xff1a;*16.13&#xff08;比较不同利率的贷款&#xff09; 改写编程练习题5.21&#xff0c;创建一个图形用户界面&#xff0c;如图16-41b所示。程序应该允许…...

正点原子imx6ull-mini-Linux驱动之Regmap API 实验

我们在前面学习 I2C 和 SPI 驱动的时候&#xff0c;针对 I2C 和 SPI 设备寄存器的操作都是通过相关 的 API 函数进行操作的。这样 Linux 内核中就会充斥着大量的重复、冗余代码&#xff0c;但是这些本质 上都是对寄存器的操作&#xff0c;所以为了方便内核开发人员统一访问 I2C…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...