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

相关推荐
愤怒的苹果ext4 小时前
MySQL JSON查询与索引
mysql·json·虚拟列·多值索引
小锅巴1234 小时前
百度测开面经(分类版)
数据库·分类·数据挖掘
芒果要切4 小时前
Redis 使用场景
数据库·redis·缓存
全栈工程师修炼指南5 小时前
DBA | Oracle RMAN 实战:物理备份与数据恢复全解析
数据库·oracle·dba
现在,此刻5 小时前
clickhouse和pgSql跨库查询方案对比
数据库·sql·clickhouse·性能优化
while(1){yan}5 小时前
数据库的基本操作
数据库·oracle
翻斗花园牛图图-5 小时前
MySQL——库的操作
数据库·mysql
大猫会长5 小时前
supabase备份数据库中某个schema的方法
数据库·oracle
-指短琴长-5 小时前
MySQL快速入门——内置函数
android·数据库·mysql
蒲公英源码7 小时前
uniapp开源ERP多仓库管理系统
mysql·elementui·uni-app·php