Импорт в phpBB3 не удаётся на первом этапе

Я настроил совершенно новый Discourse, активировал его, и он работает нормально. Никаких изменений не вносилось. Я пытаюсь выполнить импорт из phpBB3, но процесс завершается ошибкой на самом раннем этапе, ещё до того, как будет вызван дамп SQL. Похоже, проблема в создании директории, но я не понимаю, почему это происходит и как это исправить.

Сначала я выполняю следующие команды:

cd /var/discourse
cp containers/app.yml containers/import.yml
nano containers/import.yml

Затем я обновляю файл import.yml, добавляя запись в список шаблонов.

После этого запускаю:

/var/discourse/launcher stop app
/var/discourse/launcher rebuild import

Но процесс не может завершить инициализацию, и в логе ошибки я вижу следующее:

FAILED

--------------------

Pups::ExecError: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server завершился с ошибкой, код возврата #<Process::Status: pid 751 exit 100>

Место возникновения ошибки: /pups/lib/pups/exec_command.rb:112:in `spawn'

Выполнение команды не удалось с параметрами {"cmd"=>["mkdir -p /shared/import/mysql/data", "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8", "add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main'", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server", "sed -Ei 's/^log/#\&/' /etc/mysql/my.cnf"]}

35bdae869b75c936048af19f082aa5eded27d1ec77b9c53c48216d794775142d

** ИНИЦИАЛИЗАЦИЯ НЕ УДАЛАСЬ ** Пожалуйста, прокрутите вверх и поищите сообщения об ошибках, которые появились раньше; их может быть несколько.

Утилита ./discourse-doctor может помочь в диагностике проблемы.

Я уже в отчаянии, пытаясь это исправить. Пожалуйста, подскажите, где я могу ошибаться?

Более глубокое изучение вопроса привело меня к этой теме, где, похоже, описана та же ошибка, с которой я столкнулся.

Я заметил, что решение заключалось в обновлении репозиториев до последней версии Ubuntu. Я изменил этот раздел в файле phpbb3.template.yml:

cmd:
          - mkdir -p /shared/import/mysql/data
          - apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
          - add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main'
          - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server
          - sed -Ei 's/^log/#&/' /etc/mysql/my.cnf

на:

cmd:
          - mkdir -p /shared/import/mysql/data
          - apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
          - add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu bionic main'
          - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server
          - sed -Ei 's/^log/#&/' /etc/mysql/my.cnf

Однако, похоже, это всё ещё не срабатывает, потому что используемый ключ теперь устарел. Не мог бы кто-нибудь помочь мне с ключом, чтобы я мог проверить эту гипотезу?

Мы перешли с Ubuntu на Debian. Именно поэтому теперь это не работает.
Я быстро попробовал, и в основном всё работает после применения следующих изменений, но сервер MariaDB почему-то не запускается автоматически. Когда у меня будет больше времени, я разберусь…

Пока вы можете вручную внести эти изменения в шаблон, а затем запустить сервер, выполнив внутри контейнера команды service mysql stop и service mysql start. Это должно сработать.

Это исправление, похоже, работает. Я продолжу импорт и посмотрю, как всё пойдёт. Большое спасибо.

У меня возникли проблемы с запуском import_phpbb3.sh внутри контейнера импорта. Мне пришлось перезапустить MySQL, выполнив команды

/etc/init.d/mysql stop

и

/etc/init.d/mysql start

после чего я смог войти в контейнер импорта и запустить import_phpbb3.sh, но он завершился с ошибкой:

root@mydiscourse-import:/var/www/discourse# import_phpbb3.sh

Импорт phpBB3 начался...

**Трассировка стека** (последний вызов в начале):

9: from script/import_scripts/phpbb3.rb:13:in `<main>'

8: from script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'

7: from script/import_scripts/phpbb3.rb:26:in `<module:PhpBB3>'

6: from /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `create'

5: from /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `new'

4: from /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:15:in `initialize'

3: from /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `create_database_client'

2: from /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `new'

1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize'

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect': **Отказано в доступе для пользователя 'root'@'localhost' (** **Mysql2::Error** **)**

Можете предложить, как действовать дальше?

Попробуйте ещё раз. Всё должно заработать снова.

cd /var/discourse
git pull
./launcher rebuild import

Спасибо, я попробовал, но, боюсь, всё ещё получаю ошибку:

Импорт phpBB3 начинается...
**Traceback** (последний вызов первый):
9: из script/import_scripts/phpbb3.rb:13:in `<main>'
8: из script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
7: из script/import_scripts/phpbb3.rb:26:in `<module:PhpBB3>'
6: из /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `create'
5: из /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `new'
4: из /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:15:in `initialize'
3: из /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `create_database_client'
2: из /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `new'
1: из /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect': **Неизвестная база данных 'phpbb' (** **Mysql2::Error** **)**

Убедитесь, что файл /var/discourse/shared/standalone/import/data/phpbb_mysql.sql существует и является корректной дампом базы данных. Затем удалите /var/discourse/shared/standalone/import/mysql/imported и повторите попытку.

Удаление /var/discourse/shared/standalone/import/mysql/imported помогло, и импорт начался! Я сообщу о результатах, когда импорт завершится.

Всё, кажется, сработало. Сейчас проверяю процессы Sidekiq.

Огромная благодарность за ваши усилия, @gerhard, вы избавили меня от множества стрессов. Большое спасибо.