Docker Desktop 中安装 MySQL 并开启远程访问的详细教程
是在 Docker Desktop 中安装 MySQL 并开启远程访问的详细教程:
一、安装 MySQL 容器
拉取 MySQL 镜像:
docker pull mysql:latest
这将从 Docker Hub 上拉取最新版本的 MySQL 镜像。如果你想使用特定版本的 MySQL,可以将 latest 替换为具体的版本号,例如 mysql:8.0。
运行 MySQL 容器:
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3303:3306 mysql:latest
docker run -d:表示在后台运行容器。
–name mysql-container:为容器命名为 mysql-container,你可以使用自己喜欢的名称。
-e MYSQL_ROOT_PASSWORD=your_password:设置 MySQL 的 root 用户密码,将 your_password 替换为你想要设置的密码。
-p 3303:3306:将容器内的 3306 端口映射到主机的 3303 端口,这样你就可以通过主机的 3303 端口访问容器内的 MySQL 服务。
二、配置 MySQL 允许远程访问
进入 MySQL 容器:
docker exec -it mysql-container bash
这将进入到 mysql-container 容器的命令行界面。
登录 MySQL 服务:
mysql -uroot -p
输入之前设置的 your_password 登录 MySQL。
修改 MySQL 配置允许远程访问:
sql
USE mysql;
– 创建允许远程访问的用户或修改 root 用户允许远程访问
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
– 授予用户权限
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
– 刷新权限
FLUSH PRIVILEGES;
将 your_user 和 your_password 替换为你想要设置的用户名和密码。
CREATE USER ‘your_user’@‘%’ IDENTIFIED BY ‘your_password’;:创建一个可以从任何 IP 地址访问的用户。如果你想只允许从特定 IP 地址访问,可以将 % 替换为相应的 IP 地址,例如 ‘your_user’@‘192.168.1.100’。
GRANT ALL PRIVILEGES ON . TO ‘your_user’@‘%’ WITH GRANT OPTION;:授予用户在所有数据库和表上的所有权限,并允许该用户授予其他用户权限。
注1:
查看当前用户及其权限:
sql
SELECT user, host FROM mysql.user;
注2:
检查主机上的 MySQL 服务占用情况
使用命令行检查:
cmd
netstat -ano | findstr :3306
这将显示使用 3306 端口的进程的 PID(进程标识符)。
如果你看到有进程正在使用 3306 端口,你可以根据 PID 在任务管理器中查看具体的进程信息。在任务管理器中,点击 “详细信息” 选项卡,找到相应的 PID,确认是否是主机上的 MySQL 服务。
这会列出所有 MySQL 用户及其允许的连接来源(host)。
检查 root 用户是否允许远程连接:
如果 host 为 %,表示允许从任何主机连接。
如果 host 为 localhost,表示只允许本地连接。
三、配置防火墙和网络
确保主机防火墙允许 3306 端口访问:
在 Windows 上,你可以打开 Windows 防火墙高级设置,创建一个新的入站规则,允许 TCP 端口 3306 的访问。
在 macOS 上,打开系统偏好设置 -> 安全与隐私 -> 防火墙,确保允许 MySQL 服务的访问。
检查 Docker 网络设置:
确保 Docker Desktop 的网络设置正常,一般默认设置下应该可以正常工作。如果有问题,可以尝试重启 Docker Desktop 或检查网络模式,通常使用默认的 bridge 模式即可。
四、测试远程连接
使用 MySQL 客户端连接:
在你的电脑上,使用 MySQL 客户端工具(如 MySQL Workbench、Navicat 或命令行)进行连接。
连接参数如下:
主机:你的 Docker 主机的 IP 地址(如果你在本地测试,可以使用 127.0.0.1 或 localhost)。
端口:3303。
用户:你创建的 your_user 或 root。
密码:你设置的 your_password。
注意事项
安全考虑:
开启远程访问会带来一定的安全风险,建议设置强密码,并仅允许必要的 IP 地址访问,避免使用 % 允许所有 IP 访问,除非你确实需要从任何地方访问。
数据持久化:
上述方法将 MySQL 数据存储在容器内,容器删除后数据会丢失。如果需要持久化数据,可以使用 Docker 卷,在运行容器时添加 -v /host/path:/var/lib/mysql 参数,将容器内的 /var/lib/mysql 目录映射到主机的 /host/path 目录,例如:
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 -v /my/host/directory:/var/lib/mysql mysql:latest
通过上述步骤,你应该可以在 Docker Desktop 中成功安装 MySQL 并开启远程访问,使你的电脑能够连接到该 MySQL 服务。记得在操作过程中,根据你的具体需求和实际情况调整相关参数和设置,同时注意安全和数据的保存问题。
相关文章:
Docker Desktop 中安装 MySQL 并开启远程访问的详细教程
是在 Docker Desktop 中安装 MySQL 并开启远程访问的详细教程: 一、安装 MySQL 容器 拉取 MySQL 镜像: docker pull mysql:latest这将从 Docker Hub 上拉取最新版本的 MySQL 镜像。如果你想使用特定版本的 MySQL,可以将 latest 替换为具体…...
计算机网络 (39)TCP的运输连接管理
前言 TCP(传输控制协议)是一种面向连接的、可靠的传输协议,它在计算机网络中扮演着至关重要的角色。TCP的运输连接管理涉及连接建立、数据传送和连接释放三个阶段。 一、TCP的连接建立 TCP的连接建立采用三次握手机制,其过程如下&…...
麦田物语学习笔记:构建游戏的时间系统
基本流程 1.代码思路 (1)新建一个TimeManager.cs (2)创建枚举变量来表示四季,在TimeManager里需要的变量有: 游戏内的秒,分钟,小时,天,月,年;游戏内的季节;控制一个季节有多少个月;控制时间的暂停;计时器tikTime (3)在Settings里添加计时器的阈值,以及各个时间的进位 (4)初始化…...
Tauri教程-进阶篇-第二节 命令机制
“如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》 “有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》 “维持现状意味着空耗你的努力和生命。”——纪伯伦 Tauri 技术教程 * 第五章 Tauri的进阶教程 第二节…...
candb++ windows11运行报错,找不到mfc140.dll
解决问题记录 mfc140.dll下载 注意:放置位置别搞错了...
提供的 IP 地址 10.0.0.5 和子网掩码位 /26 来计算相关的网络信息
网络和IP地址计算器 https://www.sojson.com/convert/subnetmask.html提供的 IP 地址 10.0.0.5 和子网掩码位 /26 来计算相关的网络信息。 子网掩码转换 子网掩码 /26 的含义二进制表示:/26 表示前 26 位是网络部分,剩下的 6 位是主机部分。对应的子网掩码为 255…...
vscode离线安装插件--终极解决方案
目录 离线安装插件安装方法 vscode连接远程服务器中的docker远程连接python jupyter开发 离线安装插件 使用vscode开发过程中,有一些内网服务器没法连接外网,造成安装插件不方便,网络上很多文章提供了很多方法,比较常见的一种是&…...
LabVIEW启动时Access Violation 0xC0000005错误
问题描述 在启动LabVIEW时,可能出现程序崩溃并提示以下错误:Error 0xC0000005 (Access Violation) Access Violation错误通常是由于权限不足、文件冲突或驱动问题引起的。以下是解决此问题的全面优化方案: 解决步骤 1. 以管理员身份运行…...
string(一)
一、了解string 可以看成是字符顺序表。 二、string遍历方式 1、下标[ ] 重载了[] for(int i 0; i < s.size(); i) {cout << s[i]; } 2、迭代器 auto it s.begin(); while(it ! s.end()) {cout << *it;it; } 3、范围for for(auto ch : s) {cout <&l…...
计算机网络 (41)文件传送协议
前言 一、文件传送协议(FTP) 概述: FTP(File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码࿰…...
C++ STL之容器介绍(vector、list、set、map)
1 STL基本概念 C有两大思想,面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型,而是使用模板来代替实际类型,这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL(Standard …...
redisson 连接 redis5报错 ERR wrong number of arguments for ‘auth‘ command
依赖版本 org.redisson:redisson-spring-boot-starter:3.25.2 现象 启动报错 org.redisson.client.RedisException: ERR wrong number of arguments for ‘auth’ command. channel: [xxx] command: (AUTH), params: (password masked) 原因 redis6以下版本认证参数不包含用…...
LeetCode:131. 分割回文串
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所…...
React-useState讲解
useState 让页面“动”起来 例如实现一个 click 计数功能,普通变量无法实现。即:修改普通变量无法触发组件的更新 rerender 通过 useState 即可实现。 state 是什么 State, A component’s memory —— 这个比喻非常好! props 父组件传…...
混币器是什么,波卡跨链交易平台
混币器是什么 混币器是一种加密货币工具,主要功能是将用户的加密货币与其他众多用户的加密货币混合在一起,打乱资金的流向和交易痕迹,使得加密货币的来源和去向难以追踪,从而增加交易的匿名性和隐私性。以下是对其工作流程和相关举例的介绍: 工作流程 用户首先将自己的加…...
【PHP】双方接口通信校验服务
请求方 使用 ApiAuthService::buildUrl($domain, [terminal > 1, ts > time()]); //http://域名/adminapi/login/platformLogin?signF7FE8A150DEC18BE8A71C5059742C81A&terminal1&ts1736904841接收方 $getParams $this->request->get();$validate ApiA…...
Web第一次作业
目录 题目 html代码 index login register css代码 base index login register 效果展示 index login register 题目 实现一个登录页面、实现一个注册页面;实现一个主页 - 登录页面:login.html - 注册页面:register.html - 主页…...
CentOS 6.8 安装 Nginx
个人博客地址:CentOS 6.8 安装 Nginx | 一张假钞的真实世界 提前安装: # sudo yum install yum-utils 一般情况下这个工具系统已经安装。 创建文件/etc/yum.repos.d/nginx.repo,输入内容如下: [nginx-stable] namenginx stab…...
网络网络层ICMP协议
网络网络层ICMP协议 1. ICMP 协议介绍 ICMP(Internet Control Message Protocol)是 TCP/IP 协议簇中的网络层控制报文协议。用于在 IP 主机、路由器之间传递控制消息,提供可能有关通信问题的反馈信息。 以及用于网络诊断或调试(…...
当父级元素设置了flex 布局 ,两个子元素都设置了flex :1, 但是当子元素放不下的时候会溢出父元素怎么解决 (css 样式问题)
一、问题 遇到个样式问题,当父级元素设置了flex 布局 ,两个子元素都设置了flex :1, 但是当子元素放不下的时候会溢出父元素怎么解决 (拖拽浏览器 使页面变小) 二、解决方法 .father{min-height: 600px;width: 100%;display: flex…...
告别GDAL依赖!用Rasterio和TensorFlow 2.6搞定BigEarthNet-MM数据集划分与TFRecord转换
告别GDAL依赖!用Rasterio和TensorFlow 2.6搞定BigEarthNet-MM数据集划分与TFRecord转换 在遥感图像处理领域,BigEarthNet-MM数据集因其多模态特性(Sentinel-1 SAR和Sentinel-2 MSI数据)成为研究热点。但许多开发者在处理该数据集时…...
基于比迪丽模型的Transformer架构优化:提升图像生成质量
基于比迪丽模型的Transformer架构优化:提升图像生成质量 在图像生成领域,比迪丽模型凭借其出色的生成效果和稳定性赢得了广泛关注。但很多用户可能不知道,通过合理的Transformer架构优化,这个模型的图像生成质量还能再上一个台阶…...
ProfControl V8的介绍 组合成为模板
作者:刘凌波链接:环野电子, profcontrolhttp://oa.profcontrol.cn/teaching_V8-7926f783c6.html来源:ProfControl组合为模版1、按下SHIFT键,在地图区域空白处按下鼠标左键不松开,移动鼠标则进入框选模式,让…...
终极指南:PrivateGPT增量文档处理策略与动态更新解决方案
终极指南:PrivateGPT增量文档处理策略与动态更新解决方案 【免费下载链接】privateGPT 利用GPT的强大功能与你的文档进行互动,确保100%的隐私保护,无数据泄露风险 项目地址: https://gitcode.com/GitHub_Trending/pr/privateGPT Priva…...
OpenClaw API配置失败?3步快速修复,免费额度高效利用
OpenClaw API配置失败?3步快速修复,免费额度高效利用引言 OpenClaw作为新一代数据采集平台,其API凭借高效稳定的特性已成为开发者首选的工具之一。但在实际接入过程中,配置失败问题频发,尤其对免费额度用户造成严重困扰…...
霜儿-汉服-造相Z-Turbo作品集:看看AI能生成多美的汉服少女图
霜儿-汉服-造相Z-Turbo作品集:看看AI能生成多美的汉服少女图 1. 惊艳开篇:AI汉服艺术的魅力 当传统汉服遇上现代AI技术,会碰撞出怎样的火花?霜儿-汉服-造相Z-Turbo给出了令人惊叹的答案。这个基于Xinference部署的文生图模型服务…...
使用Alpine配置WSL ssh门户
1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...
League-Toolkit:3大核心价值的英雄联盟智能辅助工具
League-Toolkit:3大核心价值的英雄联盟智能辅助工具 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit 是一款基于英雄…...
Windows系统优化工具WinUtil:从新手到专家的完整使用指南
Windows系统优化工具WinUtil:从新手到专家的完整使用指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否厌倦了Windows系统…...
2027年非全日制国际商务硕士备考规划-暨南大学(珠海研究院)
2027年非全日制国际商务硕士备考规划 一、基本情况与备考总原则 个人时间画像 工作日:19:20到家,19:30-20:00吃饭休息,20:00-23:00为黄金学习时段(约2.5-3小时)。23:30前入睡,保证7小时睡眠。 周末…...
