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

相关推荐
倔强的石头_10 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐4 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端