docker部署mysql

docker部署mysql

  • Docker部署MySQL
  • 配置远程登录
  • 持久化数据
    • 创建容器时配置挂载卷
    • 后置配置挂载卷
  • Docker卸载MySQL
  • 部署特定版本mysql
  • 【出现1251错误】远程连接docker容器中的mysql8.0数据库时出现连接不上

Docker部署MySQL

要使用Docker部署MySQL,你可以使用官方的MySQL Docker镜像,遵循以下步骤:

  1. 首先,确保你已经在CentOS上安装了Docker,可以参考前面的回答来安装。

  2. 使用以下命令来拉取官方MySQL Docker镜像:

docker pull mysql:latest

这将下载最新版本的MySQL镜像到你的系统。

  1. 创建一个MySQL容器并运行它,同时设置root密码和将容器内部的3306端口映射到宿主机的某个端口(比如3306):
docker run -d --name mysql-container -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql

请将 your_password 替换为你所需的MySQL root密码。

  1. MySQL容器将在后台运行。你可以使用以下命令来检查容器的状态:
docker ps
  1. 接下来,你可以使用MySQL客户端连接到MySQL容器。首先,安装MySQL客户端,如果尚未安装:
sudo yum install mysql
  1. 使用以下命令连接到MySQL容器:
# mysql -h 127.0.0.1 -P 3306 -u root -p
docker exec -it some-mysql mysql -uroot -p

然后输入之前设置的密码。

现在,你已经成功部署了一个MySQL容器。你可以在容器内创建数据库、用户等,或者将你的应用程序连接到该MySQL容器。在实际生产环境中,你应该更加细致地配置MySQL容器,包括持久化数据和设置安全性选项。请查看Docker和MySQL的官方文档以获取更多详细信息。

配置远程登录

要配置MySQL允许远程连接,你需要执行以下步骤:

  1. 首先,确保MySQL服务器正在运行,并且你可以通过本地访问MySQL服务器。可以使用以下命令来验证:
docker exec -it mysql-container mysql -u root -p
  1. 一旦连接到MySQL服务器,使用以下命令创建一个新用户(如果尚未存在):
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';

在这里,将 your_username 替换为你想要的用户名,your_password 替换为相应的密码。这将创建一个具有指定用户名和密码的新MySQL用户。

  1. 授予新用户远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;

这将为新用户授予对所有数据库和所有表的完全访问权限。

  1. 刷新MySQL特权以使更改生效:
FLUSH PRIVILEGES;
  1. 最后,确保防火墙未阻止MySQL端口(默认情况下为3306)。如果你使用的是防火墙,请确保已允许MySQL流量通过3306端口。

完成上述步骤后,你的MySQL服务器应该已经配置允许远程访问了。现在,你应该能够使用指定的用户名和密码从远程计算机连接到MySQL服务器。

持久化数据

现在可以使用宿主机或其他网络连接到 Docker 中运行的 MySQL 数据库。记住,这种方法仅适用于开发和测试,因为容器中的数据不会保留在容器被删除后。如果需要持久化数据,你可以通过挂载卷将 MySQL 数据存储到宿主机文件系统中。

创建容器时配置挂载卷

挂载卷(Volume Mounting)是一种将宿主机文件系统中的目录或文件与容器中的目录或文件关联起来的方法。在 Docker 中,挂载卷允许容器中的数据持久保存在宿主机上,即使容器被删除或重建,数据也不会丢失。

对于 MySQL 容器,你可以通过挂载卷来持久化存储数据库数据。以下是一些简单的示例步骤:

  1. 创建一个用于持久化存储 MySQL 数据的目录(比如 /my/mysql/data):
mkdir -p /my/mysql/data
  1. 运行 MySQL 容器时,通过 -v 参数将宿主机的目录与容器中的 MySQL 数据目录关联起来:
sudo docker run \
--name some-mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-v /my/mysql/data:/var/lib/mysql \
-d \
-p 3306:3306 mysql:8.0

这将把宿主机中的 /my/mysql/data 目录挂载到容器内的 MySQL 数据目录 /var/lib/mysql

通过挂载卷,你可以确保 MySQL 数据持久存储在宿主机上,即使容器被删除后也能保留。这对于避免数据丢失和容器重建时的数据恢复非常重要。

后置配置挂载卷

如果你已经创建了一个没有挂载卷的容器,并且想要添加一个挂载卷以持久化存储数据,你可以使用 docker volume create 命令创建一个 Docker 卷,并使用 docker volume inspect 命令来获取该卷的详细信息。然后,可以使用 docker container inspect 命令获取容器的详细信息,包括其 ID。最后,使用 docker container update 命令将挂载卷附加到容器上。

下面是一个示例,演示如何为已创建的容器添加一个挂载卷:

  1. 首先,创建一个 Docker 卷:
docker volume create my_mysql_data
  1. 获取容器的 ID,可以使用以下命令获取容器的 ID:
docker container inspect -f '{{.Id}}' some-mysql

确保将 some-mysql 替换为你实际的容器名称。

  1. 获取卷的详细信息,包括路径等信息:
docker volume inspect my_mysql_data
  1. 最后,使用 docker container update 命令将卷附加到容器上:
docker container update --mount source=my_mysql_data,target=/var/lib/mysql <CONTAINER_ID>

确保将 <CONTAINER_ID> 替换为你的容器的实际 ID。

通过以上步骤,你应该能够为已创建的容器添加一个挂载卷,并将数据持久化存储到 Docker 卷中。

Docker卸载MySQL

要卸载Docker中的MySQL容器,可以按照以下步骤进行操作:

  1. 首先,使用以下命令查看正在运行的Docker容器:
docker ps
  1. 从列表中找到正在运行的MySQL容器的CONTAINER ID 或者 NAME。

  2. 停止正在运行的MySQL容器。如果使用CONTAINER ID,可以运行以下命令:

docker stop <CONTAINER_ID>

如果使用容器名称,可以运行以下命令:

docker stop <CONTAINER_NAME>
  1. 确认容器已停止。可以再次运行 docker ps 命令查看容器状态。

  2. 最后,使用以下命令来删除已停止的MySQL容器:

docker rm <CONTAINER_ID or CONTAINER_NAME>

确保使用正确的CONTAINER ID或容器名称替换命令中的占位符。

现在,MySQL容器已经从Docker中卸载并删除。如果你不再需要使用MySQL镜像,也可以选择删除该镜像。

部署特定版本mysql

要安装特定版本的MySQL Docker镜像,你可以使用标签来指定所需的版本。以下是基于Docker官方MySQL镜像的示例步骤:

  1. 首先,查找可用的MySQL版本列表。你可以通过以下命令列出可用的MySQL版本标签:
docker search mysql

这将列出所有可用的MySQL Docker镜像及其标签。

  1. 选择你想要的特定版本的MySQL。假设你想要安装8.0版本,可以运行以下命令:
docker pull mysql:8.0

这将下载MySQL 8.0版本的Docker镜像到你的系统中。

  1. 创建并运行一个MySQL容器,设置root密码并将容器内部的3306端口映射到宿主机的某个端口(比如3306):
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql:8.0

确保将 your_password 替换为你想要设置的MySQL root密码。

现在,你已经成功安装了指定版本的MySQL Docker镜像,并创建了一个基于该版本的MySQL容器。

【出现1251错误】远程连接docker容器中的mysql8.0数据库时出现连接不上

在这里插入图片描述

参考一下
【出现1251错误】

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

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

相关文章

伊朗黑客对以色列科技和教育领域发起破坏性网络攻击

导语 近期&#xff0c;以色列的高等教育和科技领域遭受了一系列破坏性的网络攻击。这些攻击始于2023年1月&#xff0c;旨在部署以前未记录的数据清除恶意软件。在最近的攻击中&#xff0c;攻击者试图窃取个人身份信息和知识产权等敏感数据。本文将介绍这些攻击的具体细节&#…

Go语言开发环境安装,hello world!

1. Go开发包SDK https://golang.google.cn/dl/&#xff08;国内也可以安装&#xff09; 根据自己电脑下载对应的安装包&#xff0c;我懒下载了msi安装 然后一路点确定安装Go 2.安装GoLand https://www.jetbrains.com/go/download/#sectionwindows 下载安装包 一路确定安装完…

大数据疫情分析及可视化系统 计算机竞赛

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据疫…

Linux 安装 Nginx 并配置为系统服务(超详细)

目录 前言安装 Nginx安装依赖项下载Nginx解压Nginx编译和安装防火墙设置启动Nginx 配置 Nginx 为系统服务配置 Nginx 服务文件启动 Nginx 服务设置开机自启动检查 Nginx 状态停止 Nginx 服务重启 Nginx 服务 卸载 Nginx结语 前言 Nginx是一款卓越的高性能Web服务器&#xff0c…

STM32 IIC 实验

1. 可以选择I2C1&#xff0c;也可以选择I2C2&#xff0c;或者同时选择&#xff0c;同时运行 配置时钟信号 为节约空间&#xff0c;选择这两个&#xff0c;然后选择GENERATE CODE 二、HAL_I2C_Mem_Write I2C_HandleTypeDef *hi2c&#xff1a;I2C设备句柄 uint16_t DevAddress&am…

算法进阶指南图论 道路与航线

其实再次看这题的时候。想法就是和强连通分量有关&#xff0c;我们很容易发现&#xff0c;题目中所说的双向边&#xff0c;就构成了一个强连通分量&#xff0c;而所谓的单向边&#xff0c;则相当于把强连通分量进行缩点&#xff0c;然后整个图成为了一个DAG&#xff0c;众所周知…

new Vue() 发生了什么

目录 前言: 原理: 代码: 用法: 总结: 相关资料: 前言: 在Vue.js中&#xff0c;当你创建一个新的Vue实例时&#xff0c;通过 new Vue() 发生了一系列重要的操作&#xff0c;包括Vue实例的初始化、数据绑定、模板编译等。这个过程是Vue应用的核心&#xff0c;本文将深入探…

可恶的 TCP 加速

中午有朋友给我发来一个图片&#xff0c;早期 TCP 规范起草人&#xff0c;david reed 老爷子气坏了&#xff1a; 互联网本是一个以合作而共赢的网络&#xff0c;结果被一群损人不利己的自私的家伙以无知的方式将这基本原则破坏掉了。 我没有能力如此言简意赅且优雅地喷(jerks…

【赠书第2期】嵌入式虚拟化技术与应用

文章目录 前言 1 背景概述 2 专家推荐 3 本书适合谁&#xff1f; 4 内容简介 5 书籍目录 6 权威作者团队 7 粉丝福利 前言 随着物联网设备的爆炸式增长和万物互联应用的快速发展&#xff0c;虚拟化技术在嵌入式系统上受到了业界越来越多的关注、重视和实际应用。嵌入式…

第八章《搞懂算法:逻辑回归是怎么回事》笔记

8.1 如何理解逻辑回归 逻辑回归根据给定的自变量数据集来估计事件的发生概率&#xff0c;由于结果是一个概率&#xff0c;因此因变量的范围在 0 和 1 之间。 逻辑回归的与线性回归一样&#xff0c;也是以线性函数为基础的&#xff1b;而与线性回归不同的是&#xff0c;逻辑回…

【广州华锐互动】VR影视制片虚拟仿真教学系统

随着虚拟现实(VR)技术的不断发展&#xff0c;VR在影视制片教学中的应用场景也变得越来越丰富。本文将介绍VR在影视制片教学中的常见应用场景及其意义&#xff0c;并通过案例分析来更好地展示其应用前景。 在影视制片教学中&#xff0c;VR可以提供一种沉浸式的制作体验。其中&am…

Unity 3D 调整cube的颜色

1.选中Assets后&#xff0c;右键->Create->Material 2.调整Material的颜色&#xff0c;然后将Material拖到对应的cube上

微头条项目实战:通过postman测试登录验证请求

1、CrosFilter package com.csdn.headline.filters; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CrosFilter implements Filter {/*** 过滤器方法&#xff0c;用于处理HTTP请求* param servletReq…

【Orangepi Zero2 全志H616】驱动舵机控制 、Linux定时器(signal、setitimer)

一、SG90舵机开发 舵机基本介绍 二、Linux定时器 signal 函数setitimer 函数原型signal、setitimer函数API调用 三、舵机 软件PWM实现 一、SG90舵机开发 舵机基本介绍 如下图所示&#xff0c;最便宜的舵机sg90&#xff0c;常用三根或者四根接线&#xff0c;黄色为PWM信号控…

python爬虫(数据获取——双R)

静态资源加载 静态资源给了请求头和url即可 动态资源加载 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 } url "https://www.xinpianchang.com/api/xpc/comments/article…

flink的带状态的RichFlatMapFunction函数使用

背景 使用RichFlatMapFunction可以带状态来决定如何对数据流进行转换&#xff0c;而且这种用法非常常见&#xff0c;根据之前遇到过的某个key的状态来决定再次遇到同样的key时要如何进行数据转换&#xff0c;本文就来简单举个例子说明下RichFlatMapFunction的使用方法 RichFl…

智慧工地综合管理平台-项目整体需求规格说明书

引言 定位与目标 智慧工地是一种现代化的管理方式,目标是通过应用现代科技手段,对施工现场的设备、人员、物资等信息全面掌控,减少工地事故的发生,提高施工质量和安全性,同时也能够降低成本,提高效益,实现建筑施工的数字化、智能化和可持续发展,为城市建设和社会发展…

【STM32 PWM输出+串口调整PWM周期和占空比】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、PWM是什么&#xff1f;1. PWM 图解二、认识STM32的PWM功能1.哪些定时器有PWM输出功能1.1 高级定时器&#xff0c;7路PWM输出&#xff0c;3组是互补输出&…