programing

docker-param wordpress mysql 연결이 거부되었습니다.

projobs 2022. 9. 15. 23:18
반응형

docker-param wordpress mysql 연결이 거부되었습니다.

내가 작은 것을 만들었다.docker-compose.ymlWordPress의 작은 인스턴스를 배치하는 데 큰 도움이 되곤 했습니다.다음과 같습니다.

wordpress:
  image: wordpress:latest
  links:
   - mysql
  ports:
   - "1234:80"
  environment:
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_NAME: wordpress
    WORDPRESS_DB_PASSWORD: "password"
    WORDPRESS_DB_HOST: mariadb
    MYSQL_PORT_3306_TCP: 3306
  volumes:
    - /srv/wordpress/:/var/www/html/
mysql:
  image: mariadb:latest
  mem_limit: 256m
  container_name: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: "password"
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: "password"
  volumes:
    - /srv/mariadb:/var/lib/mysql

하지만 지금 시작할 때 (아마도 도커가 Docker 버전 1.9.1로 업데이트되었기 때문에a34a1d5에러가 발생.

wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection    refused in - on line 10
wordpress_1 | 
wordpress_1 | MySQL Connection Error: (2002) Connection refused

내가 고양이일 때/etc/hostswordpress_1MySQL에 대한 엔트리가 있습니다.

172.17.0.10 mysql 12a564fdbc56 mariadb

MariaDB 서버에 ping을 실행할 수 있습니다.

내가 할 때docker-compose upWordPress가 설치되고 여러 번 다시 시작하면 MariaDB 컨테이너가 다음과 같이 인쇄됩니다.

Version: '10.0.22-MariaDB-1~jessie'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

어느 쪽이 작동 중인지 알 수 있죠?

WordPress를 MariaDB 컨테이너에 연결하려면 어떻게 해야 합니까?

이 문제를 해결하기 위해 가장 먼저 해야 할 일은 다음과 같이 하십시오.

워드프레스 및 데이터베이스 컨테이너에 다음 코드를 추가합니다(도커 컴포지트 파일 내).

restart: unless-stopped

이렇게 하면 워드프레스 컨테이너가 데이터베이스에 연결하기 전에 데이터베이스가 시작되고 초기화됩니다.그런 다음 도커 엔진을 다시 시작합니다.

sudo restart docker

또는 (ubuntu 15+의 경우)

sudo service docker restart 

여기에 마리아와 워드프레스를 셋업하기 위한 풀 설정이 있습니다.DB:

version: '2'

services:
  wordpress:
    image: wordpress:latest
    links:
      - database:mariadb
    environment:
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_NAME=mydbname
      - WORDPRESS_TABLE_PREFIX=ab_
      - WORDPRESS_DB_PASSWORD=password
      - WORDPRESS_DB_HOST=mariadb
      - MYSQL_PORT_3306_TCP=3306
    restart: unless-stopped
    ports:
      - "test.dev:80:80"
    working_dir: /var/www/html
    volumes:
     - ./wordpress/:/var/www/html/
  database:
   image: mariadb:latest
   environment:
     - MYSQL_ROOT_PASSWORD=password
     - MYSQL_DATABASE=mydbname
     - MYSQL_USER=wordpress
     - MYSQL_PASSWORD=password
   restart: unless-stopped
   ports:
     - "3306:3306"

이 동작의 원인은 아마도 최근의 커널 및 도커 업데이트와 관련이 있을 것입니다.다른 도커 구성 설정에서 몇 가지 다른 연결 문제를 발견했습니다.그 때문에, 서버를 재기동해(도커 서비스 뿐만이 아니라) 그 후, 이러한 문제는 발생하지 않게 되었습니다.

거의 같은 문제가 있었지만 Wordpress 컨테이너를 재시작하는 것만으로 문제가 해결되었습니다.

$ docker restart wordpress

이것이 많은 사람들에게 도움이 되길 바랍니다.

저도 여기서 고생했어요.도커 컴포지트를 사용하여 단일(마이크로) Virtual Private Server에서 다음과 같은 여러 워드프레스 웹 사이트를 셋업하고 있었습니다.phpmyadmin그리고.jwilder/nginx-proxy컨트롤러로서 기능합니다.

docker-param wordpress mysql 연결이 거부되었습니다.

$ docker logs XXXX관심 영역을 나타내는 데 도움이 됩니다.내 경우 MariaDB 데이터베이스는 항상 재시작됩니다.

이 모든 것이 마이크로 512M 싱글 CPU 서비스로는 맞지 않는 것으로 나타났습니다.사이즈가 문제라는 에러 메세지는 받은 적이 없습니다만, 모든 데이타베이스가 기동하고 있을 때에 메모리가 부족하다는 것을 깨달았습니다.1Gb, 1CPU 서비스로의 업그레이드는 정상적으로 동작했습니다.

당신의 docker-compose.yml을 사용하고 있었는데 같은 문제가 있었습니다.재기동만으로는 해결되지 않았다.로그를 거의 한 시간 동안 조사한 결과, 다음과 같은 문제가 발견되었습니다.wordpress가 접속을 했습니다.mysql서비스가 완전히 시작되기 전에.단순히 depends_on을 추가하는 것만으로는 도움이 되지 않습니다.도커 구성 Y를 시작하기 전에 컨테이너 X를 기다립니다.

이 작업을 할 수 .db하면, 실행해 주세요.docker-compose up아니면 그냥 외부 서비스를 사용할 수도 있습니다.

이는 단순히 잘못된 호스트에 연결하려고 시도하고 있음을 의미합니다.하면 됩니다.예에서는 localhost가 .이 예에서는 다음과 같습니다.mysql하여 수정할 수 .MYSQL_ROOT_HOST: localhost

저 같은 경우에는 Mysql(MariaDb가 아님)을 사용하고 있습니다만, 같은 문제가 있었습니다.MySQL 버전을 업그레이드하면 정상적으로 동작합니다.

오픈 소스 도커 컨버전스 구성을 보실 수 있습니다.https://github.com/rimiti/wordpress-dockerized-environment

언급URL : https://stackoverflow.com/questions/34068671/docker-compose-wordpress-mysql-connection-refused

반응형