代码之家  ›  专栏  ›  技术社区  ›  Junius L.

拒绝使用MySQL容器的用户root访问Wordpress

  •  1
  • Junius L.  · 技术社区  · 7 年前

    我试图使MySQL实例可用于其他容器,我遵循以下文档 mysql 还有这个 wordpress 官方文件,我得到这个错误

    MySQL连接错误:(1045)用户“root”的访问被拒绝@'172.17.0.3“(使用密码:YES)

    MySQL实例代码

    docker run -d --restart on-failure -v hatchery:/var/lib/mysql \
               -e MYSQL_ROOT_PASSWORD=Kerrigan \
               -e MYSQL_DATABASE=zerglings --name spawning-pool mysql
    

    WordPress实例的代码

    docker run -d --name lair -p 8080:80 --link spawning-pool:mysql wordpress
    

    如何成功链接wordpress和mysql容器?

    2 回复  |  直到 4 年前
        1
  •  1
  •   code_monk    7 年前

    您需要通过环境变量将数据库连接凭据传递给wordpress:

    docker run -d --name lair -p 8080:80 --link spawning-pool:mysql \
        -e WORDPRESS_DB_HOST=mysql \
        -e WORDPRESS_DB_NAME=zerglings \
        -e WORDPRESS_DB_PASSWORD=zerglings wordpress
    
        2
  •  1
  •   Junius L.    7 年前

    我通过删除所有内容并尝试重新启动来解决这个问题。

    docker rm -v spawning-pool # -v Remove the volumes associated with the container
    

    也删除卷

    docker volume rm hatchery
    

    然后我再次创建了容器

    # create the volume
    docker volume create hatchery
    
    # MySQL instance
    docker run -it -d --restart on-failure -v hatchery:/var/lib/mysql \
               -e MYSQL_ROOT_PASSWORD=Kerrigan \
               -e MYSQL_DATABASE=zerglings --name spawning-pool mysql
    
    # creating wordpress
    docker run -d --name lair -p 8080:80 --link spawning-pool:mysql \
               -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_NAME=zerglings 
               -e WORDPRESS_DB_PASSWORD=Kerrigan wordpress