如何使用docker-compose创建多个mysql db服务并在单个phpmyadmin服务中查看相应的数据库

pgvzfuti  于 2023-11-19  发布在  PHP
关注(0)|答案(1)|浏览(292)

我想创建多个数据库服务,然后使用docker-compose在单个phpmyadmin服务中查看数据库。
docker-compose文件在下面

  1. version: '3.9'
  2. services:
  3. dbone:
  4. image: mysql:latest
  5. restart: always
  6. container_name: dbone
  7. ports:
  8. - "8080:3306"
  9. environment:
  10. - MYSQL_HOST=mysql
  11. - MYSQL_DATABASE=sakila
  12. - MYSQL_USER=user
  13. - MYSQL_PASSWORD=test
  14. - MYSQL_ROOT_PASSWORD=test
  15. - TZ=Africa/Lagos
  16. volumes:
  17. - ./docker/data/db/mysql/dump/2-create-schema.sql:/docker-entrypoint-initdb.d/2.sql
  18. - persistent_1:/var/lib/mysql
  19. command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  20. dbtwo:
  21. image: mysql:latest
  22. restart: always
  23. container_name: dbtwo
  24. ports:
  25. - "8090:3306"
  26. environment:
  27. - MYSQL_HOST=mysql
  28. - MYSQL_DATABASE=mysql_json_db
  29. - MYSQL_USER=user
  30. - MYSQL_PASSWORD=test
  31. - MYSQL_ROOT_PASSWORD=test
  32. - TZ=Africa/Lagos
  33. volumes:
  34. - ./docker/data/db/mysql/dump/mysql_json_db.sql:/docker-entrypoint-initdb.d/1.sql
  35. - persistent_2:/var/lib/mysql
  36. command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  37. phpmyadmin:
  38. image: phpmyadmin:latest
  39. restart: always
  40. container_name: phpmyadmin
  41. depends_on:
  42. - done
  43. - dbtwo
  44. ports:
  45. - "8070:80"
  46. environment:
  47. - MAX_EXECUTION_TIME=0
  48. - PMA_HOST=mysql
  49. - PMA_ARBITRARY=1
  50. volumes:
  51. persistent_1:
  52. persistent_2:

字符串
如上所述,dbone和dbtwo是我想让phpmyadmin服务可用的数据库服务。为了做到这一点,我分别将mysql设置为dbone和dbtwo的MYSQL_HOST主机名,并将mysql设置为phpmyadmin服务的PMA_HOST主机名。
我觉得dbone和dbtwo这样的服务名应该分别是两个容器的MYSQL_HOST名称。但是如果我分别为dbone和dbtwo容器设置MYSQL_HOST=dbone和MYSQL_HOST=dbtwo,我发现很难为phpmyadmin容器设置PMA_HOST。
我的docker-compose文件已经使用以下命令运行

  1. docker-compose up --build


我尝试访问localhost:8070,打开phpmyadmin,但尝试使用用户名登录:用户和密码:测试,失败并显示以下内容:

  1. Cannot log in to the MySQL server
  2. mysqli::real_connect(): php_network_getaddresses: getaddrinfo for mysql failed: Temporary failure in name resolution
  3. mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo for mysql failed: Temporary failure in name resolution


请帮助我解决这个问题。

7dl7o3gd

7dl7o3gd1#

它现在可以通过以下更新工作

  1. version: '3.9'
  2. services:
  3. dbone:
  4. image: mysql:latest
  5. restart: always
  6. container_name: dbone
  7. ports:
  8. - "3307:3306"
  9. environment:
  10. - MYSQL_HOST=dbone
  11. - MYSQL_DATABASE=sakila
  12. - MYSQL_USER=user
  13. - MYSQL_PASSWORD=test
  14. - MYSQL_ROOT_PASSWORD=test
  15. - TZ=Africa/Lagos
  16. volumes:
  17. - ./docker/data/db/mysql/dump/2-create-schema.sql:/docker-entrypoint-initdb.d/2.sql
  18. - persistent_1:/var/lib/mysql
  19. command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  20. dbtwo:
  21. image: mysql:latest
  22. restart: always
  23. container_name: dbtwo
  24. ports:
  25. - "3308:3306"
  26. environment:
  27. - MYSQL_HOST=dbtwo
  28. - MYSQL_DATABASE=mysql_json_db
  29. - MYSQL_USER=user
  30. - MYSQL_PASSWORD=test
  31. - MYSQL_ROOT_PASSWORD=test
  32. - TZ=Africa/Lagos
  33. volumes:
  34. - ./docker/data/db/mysql/dump/mysql_json_db.sql:/docker-entrypoint-initdb.d/1.sql
  35. - persistent_2:/var/lib/mysql
  36. command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  37. phpmyadmin:
  38. image: phpmyadmin:latest
  39. restart: always
  40. container_name: phpmyadmin
  41. depends_on:
  42. - dbone
  43. - dbtwo
  44. ports:
  45. - "8070:80"
  46. environment:
  47. - MAX_EXECUTION_TIME=0
  48. - PMA_HOSTS=dbone,dbtwo
  49. - PMA_ARBITRARY=1
  50. volumes:
  51. persistent_1:
  52. persistent_2:

字符串

展开查看全部

相关问题