Контейнер Podman с MediaWiki не может подключиться к MariaDB

Вопрос или проблема

У меня есть контейнер podman с mediawiki и установленный natively mariadb. На данный момент он работает, и я могу получить доступ к веб-интерфейсу.

Но когда я пытаюсь подключиться к базе данных на этапе настройки, я получаю

Не могу получить доступ к базе данных: :real_connect(): (HY000/1045): Доступ запрещен для пользователя 'mediawikidbuser'@'mediawiki' (с использованием пароля: ДА)

Теперь “веселая” часть в том, что я могу подключиться к базе данных изнутри контейнера. Для отладки я установил mariadb внутри контейнера. Оттуда я подключился к базе данных снаружи, и все работает безупречно. Я могу создавать таблицы, вставлять данные и снова их читать.

В кратце: я могу подключиться к базе данных изнутри контейнера, но mediawiki не может.

Я пробовал оба варианта: IP и имя хоста. Ошибка та же.

Альтернативным решением было бы использовать postgresql, который лучше во всех отношениях. Но я не смог заставить это работать. По умолчанию контейнер mediawiki не предлагает postgresql, и скрипты для ручной подготовки базы данных не запускаются внутри контейнера (даже с доработками). Документация говорит, что mediawiki должна быть скомпилирована (?) с опцией postgres.

Ответ или решение

Чтобы решить проблему с подключением MediaWiki к MariaDB в Podman-контейнере, нужно рассмотреть несколько аспектов. Вы уже смогли установить соединение с базой данных и создать таблицы из контейнера, что указывает на правильность конфигурации MariaDB. Однако, ошибка, которую вы получаете, говорит о проблемах с аутентификацией при подключении MediaWiki.

Вот несколько шагов, чтобы устранить проблему:

  1. Проверка учетных данных:
    Убедитесь, что вы правильно указали имя пользователя, пароль и название базы данных в настройках MediaWiki. Откройте LocalSettings.php (или выполните настройки через интерфейс) и проверьте, что параметры соответствуют следующим:

    $wgDBuser = 'mediawikidbuser';
    $wgDBpassword = 'ваш_пароль';
    $wgDBname = 'ваша_база_данных';
  2. Проверка привилегий пользователя:
    Убедитесь, что у пользователя mediawikidbuser есть все необходимые привилегии для подключения к базе данных с IP-адреса или имени хоста контейнера MediaWiki. Выполните следующие команды в MariaDB:

    GRANT ALL PRIVILEGES ON ваша_база_данных.* TO 'mediawikidbuser'@'%' IDENTIFIED BY 'ваш_пароль';
    FLUSH PRIVILEGES;

    Знак ‘%’ позволяет подключение от любого IP-адреса. Если вы хотите ограничить доступ только контейнером MediaWiki, вы можете указать конкретный IP-адрес или имя контейнера.

  3. Настройка хоста:
    Убедитесь, что MediaWiki может правильно разрешить имя хоста MariaDB. Если у вас возникают проблемы с использованием имени хоста, попробуйте указать IP-адрес MariaDB напрямую в настройках MediaWiki.

  4. Проверка конфигурации сети:
    Если вы используете отдельную сеть для контейнеров Podman, убедитесь, что контейнер MediaWiki может взаимодействовать с MariaDB в этой сети. Вы можете проверить сетевые настройки с помощью команды:

    podman network inspect <название_сети>

    Убедитесь, что оба контейнера находятся в одной сети и обмен данными не блокируется правилами брандмауэра.

  5. Логи MediaWiki:
    Посмотрите логи MediaWiki, чтобы получить более детальную информацию об ошибках подключения. Это может дать полезные подсказки для диагностики проблемы.

  6. Использование PostgreSQL:
    Если вы решите использовать PostgreSQL, то вам действительно потребуется сборка MediaWiki с поддержкой PostgreSQL. Это можно сделать, следуя официальной документации MediaWiki, или искать готовые Docker-имиджи, которые включают PostgreSQL.

  7. Перезапуск сервисов:
    Наконец, после внесения любых изменений в настройки базы данных или конфигурацию MediaWiki, обязательно перезапустите контейнер MediaWiki, чтобы применить новые настройки.

Если после выполнения всех этих шагов проблема не решается, рассмотрите возможность обращения в сообщество поддержки MediaWiki или баз данных, предоставляя им подробную информацию о вашей конфигурации и том, что вы уже попробовали.

Оцените материал
Добавить комментарий

Капча загружается...