首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Docker

docker 装的 lamp 环境, 映射了 80 和 3306. 3306 连不上

  •  
  •   edk24 · 39 天前 · 2128 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚玩 docker 不久, 搞不明白什么情况

    拉镜像启动了个容器. 80 可以访问, 3306 却连不上

    试过 localhost 127.0.0.1 172.17.0.1 都不行

    在容器内使用 mysql 连接或者 phpmyadmin 都正常.

    yuxiaobo@yuxiaobo-PC:~/Desktop$ docker ps -a
    CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                                        NAMES
    b367eab7d585        mattrayner/lamp:latest   "/run.sh"           7 days ago          Up 2 days           0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp   lamp
    

    也试过另外一个镜像, 结果都是宿主机连不上.

    求大佬解惑

    不喜欢 mysql 命令行和 phpmyadmin....

    11 回复  |  直到 2019-05-11 19:53:24 +08:00
        1
    gjquoiai   39 天前
    那么问题来了,你没用命令行和 gui 是怎么知道 mysql 连不上的?
        2
    lxy42   39 天前 via Android
    我猜是 MySQL 设置为只能 localhost 访问,修改配置文件的 host 试试。
        3
    dilu   39 天前 via Android
    你先进入到容器里面连一下,如果能连上说明 mysql 没有开启允许远程连接,如果不能连上说明 mysql 没有启动 自己去看日志找原因
        4
    chwech   39 天前 via iPhone
    和你用一样的镜像,正在探索中
        5
    edk24   38 天前
    @dilu
    @gjquoiai 在容器内可以用 mysql 命令行连接, lamp 也自带了 phpmyadmin.

    但宿主机不论 localhost 还是 127.0.0.1 亦或者是 172.17.0.1 都无法连接

    已为 root 用户设置 host 字段为 %.

    我得到的信息不是密码或用户名错误, 而是宿主机根本不能连接到 mysql
        6
    edk24   38 天前
    @dilu 已经为 root 设置 host 为% 开启远程连接了

    要么无法连接, 要么拒绝连接

    任何操作后我都 restart 了
        7
    grantonzhuang   38 天前 via Android
    telnet 结果如何
        8
    megachweng   38 天前 via iPhone
    应该是 mysql 只监听了 127.0.0.1,或者没有配置数据库用户访问权限
        9
    HuHui   38 天前 via Android
    配置 启动命令发出来看看
        10
    HuHui   38 天前   ♥ 2
    看文档描述啊
    MySQL Databases
    By default, the image comes with a root MySQL account that has no password. This account is only available locally, i.e. within your application. It is not available from outside your docker image or through phpMyAdmin.

    When you first run the image you'll see a message showing your admin user's password. This user can be used locally and externally, either by connecting to your MySQL port (default 3306) and using a tool like MySQL Workbench or Sequel Pro, or through phpMyAdmin.

    If you need this login later, you can run docker logs CONTAINER_ID and you should see it at the top of the log. https://hub.docker.com/r/mattrayner/lamp
        11
    edk24   38 天前
    @HuHui
    明白了, 我英语极差, 机翻随便看看怎么用就开始搞事了...

    感谢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3385 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 05:24 · PVG 13:24 · LAX 22:24 · JFK 01:24
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1