Strona 1 z 2

Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 22 stycznia 2020, 22:43
autor: Radoslaus
Cześć, mam dość specyficzny problem. Mam debiana 10, cały system znajduje się na jednym dysku (nie mam podziału nawet na osobną partycje na home). W osobnym katalogu mam na stałe podmontowany drugi dysk (przeznaczony tylko na nextclouda) W debianie mam zainstalowanego aktualnego dockera.
Chce uruchomić nextclouda 17 na tym systemie, mam przygotowany docker-compose.yml zawierający nextclouda i marieDB.

I teraz meritum, w docker-compose wskazuje, że volumen z danymi chmury ma znajdować się na na tym drugim podmontowanym dysku. Obrazy się bez problemu uruchamiają, otwiera się nextcloud i widok konfiguracji (dodanie konta admina i wybór bazy). Jeżeli volumen z danymi ma zapisać się na tym drugim dysku pojawia się błąd połączenia z bazą danych:

Kod: Zaznacz cały

Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
A jeżeli wskaże dysk główny (ten na którym znajduje się system) problem nie występuje, nie zależnie od tego który katalog wybiore.

Podejrzewałem, że problemem są uprawnienia, jednak nawet jeżeli użyje sudo, nie da się połączyć do bazy.
Może ktoś spotkał się z podobnym problemem?

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 09:39
autor: LordRuthwen
Baza gdzie jest uruchomiona?

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 10:18
autor: Radoslaus
Baza znajduje się dokładnie w tym samym katalogu co pliki użytkowników.

Kod: Zaznacz cały

version: '3.2'

services:
  mariadb:
    image: mariadb:10.4.11
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /cloud/nextcloud/data/own_data/sql/:/var/lib/mysql/
    environment:
      - MYSQL_ROOT_PASSWORD=pass
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=name
      - MYSQL_USER=user

  nextcloud_17_0_1:
    build: 
      context: .
      dockerfile: nextdockerfile
    ports:
      - 8080:80
      - 443:443
    links:
      - mariadb
    volumes:
      - /cloud/nextcloud/data/:/var/www/html/
    restart: always

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 10:51
autor: LordRuthwen
Czekaj, to co wkleiłeś wyżej działa?
A jak to wygląda jak nie działa?

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 11:12
autor: Radoslaus
To co wkleiłem nie działa.

To co działa różni się tylko ścieżka, czyli wygląda dokładnie tak:

Kod: Zaznacz cały

version: '3.2'

services:
  mariadb:
    image: mariadb:10.4.11
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /home/radek/nextcloud/data/own_data/sql/:/var/lib/mysql/
    environment:
      - MYSQL_ROOT_PASSWORD=pass
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=name
      - MYSQL_USER=user

  nextcloud_17_0_1:
    build: 
      context: .
      dockerfile: nextdockerfile
    ports:
      - 8080:80
      - 443:443
    links:
      - mariadb
    volumes:
      - /home/radek/nextcloud/data/:/var/www/html/
    restart: always

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 11:16
autor: LordRuthwen
Uprawnienia plików w ścieżkach masz takie same?
Bo do tego bym się doczepił.
Pliki bazy kopiowałeś na wyłączonej czy włączonej bazie?

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 11:28
autor: Radoslaus
Uprawnienia do plików wew. katalogu nextcloud wyglądają tak:
razem 144
-rw-r--r-- 1 radek radek 7907 lis 27 08:17 default-ssl.conf
-rw-r--r-- 1 radek radek 661 sty 18 16:05 docker-compose.yml
-rw-r--r-- 1 radek radek 429 sty 20 22:32 nextdockerfile
drwxr-xr-x 16 radek radek 16384 sty 21 05:40 data
-rw-r--r-- 1 radek radek 1708 lis 21 20:43 ssl-cert-snakeoil.key
-rw-r--r-- 1 radek radek 1042 lis 21 20:40 ssl-cert-snakeoil.pem
Katalog data nie jest znikąd kopiowany, kiedy uruchamiam docker-compose up, on jest dopiero tworzony przez dockera, nie kopiuje też żadnych plików bazy. To jest przygotowane po to, by w przyszłości móc tak zrobić.
Pozostałe pliki widoczne w tym katalogu są związane z plikiem nextdockerfile.

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 11:40
autor: LordRuthwen
Ok, to odpal kontener, zaloguj się do niego i zobacz co napisał w logach bazy, bo ewidentnie baza nie wstaje.

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 22:55
autor: Radoslaus
Tu pojawia się problem.
W logach mariadb nie znalazłem NIC.

plik /var/lib/mysql/b89f0fa4b88a.log

Kod: Zaznacz cały

mysqld, Version: 10.4.11-MariaDB-1:10.4.11+maria~bionic (mariadb.org binary distribution). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                Id Command  Argument
200123 21:26:14     14 Quit
200123 21:26:17     16 Connect  root@localhost as anonymous on
                    16 Query    SHOW VARIABLES
                    16 Quit
200123 21:26:31     17 Connect  root@localhost as anonymous on
                    17 Query    select @@version_comment limit 1
200123 21:26:51     17 Query    SET GLOBAL slow_query_log = 'ON'
200123 21:26:54     17 Quit
200123 21:26:56     18 Connect  root@localhost as anonymous on
                    18 Query    SHOW VARIABLES
                    18 Quit
plik /var/log/mysql/mariadb-slow.log

Kod: Zaznacz cały

mysqld, Version: 10.4.11-MariaDB-1:10.4.11+maria~bionic (mariadb.org binary distribution). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                Id Command  Argument

Nie wiem gdzie jeszcze mógłbym szukać logów.

Natomiast docker-compose up nie uruchamiam z parametrem -d, a więc przy próbie połączenia widać było taki wpis:

Kod: Zaznacz cały

mariadb_1           | 2020-01-23 20:53:29 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'unauthenticated' host: '172.18.0.3' (This connection closed normally without authentication)

Re: Nextcloud (docker) problem z połączeniem z bazą danych na drugim dysku

: 23 stycznia 2020, 23:15
autor: mariaczi
Pokaż co pokazuje

Kod: Zaznacz cały

docker ps
po próbie uruchomienia obu kontenerów.
Sprawdź czy kontener MariaDB nasłuchuje na porcie 3306 np.

Kod: Zaznacz cały

sudo ss -tnpl | grep 3306
. Jeśli tak, zaloguj się do kontenera MariaDB i z niego podłącz się do bazy lub jeśli masz klienta mysql'a bezpośrednio na hoście to i z niego możesz podłączyć się 'do bazy'. Po zalogowaniu sprawdź jakich masz użytkowników bazodanowych z jakimi uprawnieniami.

Czy proces instalacji nextcloud'a uruchamiałeś? Tzn. czy masz założona bazę pod niego wraz z użytkownikiem i uprawnieniami dla niego do tej bazy?

W katalogu z bazami powinieneś mieć plik z rozszerzeniem ".err" (zakładam, że zostawili domyślną ścieżkę do error loga). Co tam w nim jest - z 20 ostatnich linijek?