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

相关推荐
2301_7903009611 小时前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
helloworldandy11 小时前
趣味项目与综合实战
jvm·数据库·python
ctyshr11 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
一起养小猫11 小时前
Flutter for OpenHarmony 实战:天气预报应用UI设计与主题切换
jvm·数据库·spring·flutter·ui·harmonyos
源代码•宸11 小时前
Redis 攻略(Redis Object)
数据库·redis·后端·缓存·字符串·哈希表·type
WangYaolove131411 小时前
基于opencv的疲劳检测系(源码+文档)
python·mysql·django·毕业设计·源码
数据知道11 小时前
PostgreSQL核心原理:一文掌握Postmaster与子进程的协作机制
数据库·postgresql
学嵌入式的小杨同学11 小时前
【Linux 封神之路】文件操作 + 时间编程实战:从缓冲区到时间格式化全解析
linux·c语言·开发语言·前端·数据库·算法·ux
·云扬·12 小时前
Redis运维实战:大key与热key排查优化、监控指标及内存策略全解析
运维·数据库·redis
heartbeat..12 小时前
Redis常见问题及对应解决方案(基础+性能+持久化+高可用全场景)
java·数据库·redis·缓存