我已经搭建了一个全新的 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
但看起来这仍然失败,因为使用的密钥现已过期。有人能帮我提供正确的密钥吗?这样我就可以验证这个理论。
gerhard
(Gerhard Schlager)
3
我们从 Ubuntu 切换到了 Debian,这就是问题所在。我快速尝试了一下,应用以下更改后基本可以正常运行,但 MariaDB 服务器似乎没有自动启动。等我稍有空闲再仔细检查一下……
目前您可以手动将这些更改应用到模板中,然后在容器内运行 service mysql stop 和 service 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** **)**
您能建议接下来该如何操作吗?
gerhard
(Gerhard Schlager)
7
可以再试一次吗?应该又能正常工作了。
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** **)**
gerhard
(Gerhard Schlager)
9
请确保 /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,您帮我解决了很多压力。非常感谢。