mysql 创建容器和启动远程链接

文章目录

      • [1. 确认容器端口映射](#1. 确认容器端口映射)
      • [2. 修改 MySQL 用户权限(允许远程连接)](#2. 修改 MySQL 用户权限(允许远程连接))
      • [3. 修改 MySQL 配置文件(可选)](#3. 修改 MySQL 配置文件(可选))
      • [4. 在远程客户端测试](#4. 在远程客户端测试)

MySQL 容器支持远程访问


1. 确认容器端口映射

在 docker run 时已经用过 -p 3306:3306,这会把宿主机的 3306 端口映射到容器的 3306 。

如果还没有,可以用下面命令重新运行容器:

bash 复制代码
docker run --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=rootpassword \
  -p 3306:3306 \
  -d mysql:8.0.23

然后确认端口映射成功:

bash 复制代码
docker ps

看 PORTS 一栏里是否有 0.0.0.0:3306->3306/tcp。


2. 修改 MySQL 用户权限(允许远程连接)

进入容器的 MySQL:

bash 复制代码
docker exec -it mysql8 mysql -uroot -p

输入你设置的 root 密码,然后在 MySQL 中执行:

sql 复制代码
-- 允许 root 从任意主机连接(仅用于测试,不推荐生产环境)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'rootpassword';

-- 或者给某个用户开放远程访问权限
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这里的 % 表示允许从任意 IP 连接,你也可以改成具体 IP(更安全)。


3. 修改 MySQL 配置文件(可选)

有时 MySQL 默认只监听 localhost,需要改配置:

  1. 进入容器:

    bash 复制代码
    docker exec -it mysql8 bash
  2. 找到并编辑配置文件(一般在 /etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),确保 不要限制:

    ini 复制代码
    [mysqld]
    bind-address = 0.0.0.0
  3. 重启容器:

    bash 复制代码
    docker restart mysql8

4. 在远程客户端测试

在远程机器上使用 MySQL 客户端连接:

bash 复制代码
mysql -h <宿主机IP> -P 3306 -u myuser -p

相关推荐
聚美智数1 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
瀚高PG实验室1 小时前
瀚高数据库常用系统表查询入门指南(附常用SQL)
数据库·sql·postgresql·瀚高数据库
ben9518chen2 小时前
mysql数据库基本操作
数据库·mysql
2603_965148112 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe2 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
缓慢更新3 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
Web3&Basketball4 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
xiaogai_gai5 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
注塑机数据采集联网5 小时前
注塑机数据采集网关对接MES系统数字化技术方案
大数据·网络·数据库·物联网·数据挖掘·数据分析
像风一样自由20205 小时前
56.实战PostgreSQL-pgvector-FastAPI构建轻量级RAG
数据库·人工智能·postgresql·大模型·fastapi·智能体