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 部分显示如下信息:

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'

exec 失败,参数如下:{"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/#\u0026/' /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 stopservice mysql start 来启动服务器。这_应该_能解决问题。

该修复似乎有效。我将继续执行导入操作,看看进展如何。非常感谢。

我在 import 容器中运行 import_phpbb3.sh 时遇到了问题。我不得不使用以下命令重启 MySQL:

/etc/init.d/mysql stop

/etc/init.d/mysql start

然后我才能进入 import 容器,并在那里运行了 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 导入...
**回溯**(最近一次调用在前):
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': **未知的数据库 '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,您帮我解决了很多压力。非常感谢。