【问题标题】:Restoring MediaWiki wiki with XAMPP from copy of /opt/lampp/ directory使用 XAMPP 从 /opt/lampp/ 目录的副本恢复 MediaWiki wiki
【发布时间】:2019-12-22 14:07:55
【问题描述】:

我在 Ubuntu 上为 LAN wiki 托管了一个带有 XAMPP 的网络服务器。我设法启动并运行它,并投入大量时间为 Wiki 编写内容和页面。

稍后我安装了 Php,突然 XAMPP 中的 Apache Web Sever 不再启动。然后我卸载了 PHP 但仍然有同样的问题。我决定全新安装 XAMPP,复制我的旧 /opt/lampp/ 目录。我认为重新安装 XAMPP 并将 /opt/lampp/htdocs 和 /opt/lamp/var/mysql 复制到新安装的 XAMPP 目录中就足够了。

当我现在尝试运行 XAMPP 时,Apache 启动但 MySQL 数据库没有。

当我在我的 Wiki 的 LocalSettings.php 中启用显示异常详细信息并尝试通过 Web 浏览器访问时,我收到以下错误消息:

MediaWiki internal error.

Original exception: [XVZpYg4zO1Jsk5cKtKVvcgAAAAM] /mywiki/ Wikimedia\Rdbms\DBConnectionError from line 1213 of /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Cannot access the database: Unknown error (localhost)
Backtrace:
#0 /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(758): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#1 /opt/lampp/htdocs/mywiki/includes/GlobalFunctions.php(2637): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, boolean)
#2 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LCStoreDB.php(54): wfGetDB(integer)
#3 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(410): LCStoreDB->get(string, string)
#4 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(456): LocalisationCache->isExpired(string)
#5 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(332): LocalisationCache->initLanguage(string)
#6 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(273): LocalisationCache->loadItem(string, string)
#7 /opt/lampp/htdocs/mywiki/languages/Language.php(4537): LocalisationCache->getItem(string, string)
#8 /opt/lampp/htdocs/mywiki/languages/Language.php(262): Language::getFallbacksFor(string)
#9 /opt/lampp/htdocs/mywiki/languages/Language.php(223): Language::newFromCode(string)
#10 /opt/lampp/htdocs/mywiki/includes/ServiceWiring.php(120): Language::factory(string)
#11 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(430): Wikimedia\Services\ServiceContainer->{closure}(MediaWiki\MediaWikiServices)
#12 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(414): Wikimedia\Services\ServiceContainer->createService(string)
#13 /opt/lampp/htdocs/mywiki/includes/MediaWikiServices.php(508): Wikimedia\Services\ServiceContainer->getService(string)
#14 /opt/lampp/htdocs/mywiki/includes/Setup.php(790): MediaWiki\MediaWikiServices->getContentLanguage()
#15 /opt/lampp/htdocs/mywiki/includes/WebStart.php(77): require_once(string)
#16 /opt/lampp/htdocs/mywiki/index.php(39): require(string)
#17 {main}

Exception caught inside exception handler: [XVZpYg4zO1Jsk5cKtKVvcgAAAAM] /mywiki/ Wikimedia\Rdbms\DBConnectionError from line 1213 of /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Cannot access the database: Unknown error (localhost)
Backtrace:
#0 /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(758): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#1 /opt/lampp/htdocs/mywiki/includes/GlobalFunctions.php(2637): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, boolean)
#2 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LCStoreDB.php(54): wfGetDB(integer)
#3 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(355): LCStoreDB->get(string, string)
#4 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(273): LocalisationCache->loadItem(string, string)
#5 /opt/lampp/htdocs/mywiki/languages/Language.php(4537): LocalisationCache->getItem(string, string)
#6 /opt/lampp/htdocs/mywiki/languages/Language.php(262): Language::getFallbacksFor(string)
#7 /opt/lampp/htdocs/mywiki/languages/Language.php(223): Language::newFromCode(string)
#8 /opt/lampp/htdocs/mywiki/includes/ServiceWiring.php(120): Language::factory(string)
#9 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(430): Wikimedia\Services\ServiceContainer->{closure}(MediaWiki\MediaWikiServices)
#10 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(414): Wikimedia\Services\ServiceContainer->createService(string)
#11 /opt/lampp/htdocs/mywiki/includes/MediaWikiServices.php(508): Wikimedia\Services\ServiceContainer->getService(string)
#12 /opt/lampp/htdocs/mywiki/includes/cache/MessageCache.php(126): MediaWiki\MediaWikiServices->getContentLanguage()
#13 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionRenderer.php(311): MessageCache::singleton()
#14 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionRenderer.php(51): MWExceptionRenderer::reportOutageHTML(Wikimedia\Rdbms\DBConnectionError)
#15 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(98): MWExceptionRenderer::output(Wikimedia\Rdbms\DBConnectionError, integer)
#16 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(172): MWExceptionHandler::report(Wikimedia\Rdbms\DBConnectionError)
#17 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(144): MWExceptionHandler::handleException(Wikimedia\Rdbms\DBConnectionError)
#18 [internal function]: MWExceptionHandler::handleUncaughtException(Wikimedia\Rdbms\DBConnectionError)
#19 {main}

无论如何我可以恢复这个吗?

【问题讨论】:

  • 看这里并跟随 steos superuser.com/questions/1328965/…
  • @nbk 我完全按照提到的方法尝试了该方法。 MySQL 现在在 XAMPP 中启动,但我仍然收到与上面相同的错误消息
  • 查看msql服务器的错误日志,是否有错误信息。
  • 没有错误信息:/
  • phpmyadmin 显示什么?甚至是 mysql 工作台

标签: php mysql ubuntu xampp mediawiki


【解决方案1】:

所以在花了一些时间尝试各种事情之后,我找到了一个解决方案,可以让我恢复 Wiki。我将在这里发布我所做的事情,以防将来对任何人有所帮助。它涉及以下步骤:

  • 导出 MySQL Mediawiki 数据库的表
  • 清理安装 XAMPP
  • 干净安装 Mediawiki 并创建一个新的 wiki 项目
  • 删除新项目的 MySQL 数据库
  • 将旧表导入新项目

由于我在网络服务器/MySQL 方面完全是个菜鸟,这可能不是最快或最有效的方法,但它确实有效。

起点:

  • 您的 XAMPP 配置中有问题,导致 MySQL 数据库无法启动。因此无法从网络浏览器启动 phpMyAdmin

  • 您有理由相信 MediaWiki MySQL 数据库本身可以正常工作并且存在(在 XAMPP 7.3.7-1 for Ubuntu 上,以下文件应位于 /opt/lampp/var/mysql 目录中:ib_logfile0 , ib_logfile1ibdata1。其中应该还有一个文件夹,其中包含您的 Mediawiki 的名称。

解决方案:

1) 导出 Mediawiki 数据库的表格

  • 在安全的地方复制整个 /opt/lampp/ 目录。
  • 卸载 XAMPP sudo ./opt/var/uninstall 并删除目录 rm -rf /opt/lampp
  • 重新安装 XAMPP(使用之前使用的相同版本)
  • 将备份版本的 ib_logfile0、ib_logfile1 和 ibdata1 复制到 /opt/lampp/var/mysql/
  • 从备份中将整个文件夹 backup/lampp/var/mysql/mywiki 复制到新安装的 XAMPP 目录 /opt/lampp/var/mysql/
  • 启动 XAMPP - 一切正常。转到 phpMyAdmin,您应该会看到 wiki 的数据库。转到它并将其导出为 SQL 格式。保存 .sql 文件。

2) 再次全新安装 XAMPP(删除 opt/lampp 中的所有内容)

3)Follow the instructions to install MediaWiki with XAMPP

4) 进行交换

  • 按照步骤 3),您现在应该有一个干净的 Mediawiki 安装,其中包含一个链接到新数据库的全新 wiki。
  • 转到 phpMyAdmin,选择数据库,然后“检查所有”数据库中的表并删除(删除)它们。
  • 现在有一个空数据库。在 phpMyAdmin 中单击 Import 并上传您在步骤 1) 中生成的 .sql 文件。

尝试启动 XAMPP 并(希望)加载 wiki!

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2015-05-15
    • 2011-04-21
    • 2016-11-10
    • 2022-07-25
    • 2015-08-05
    相关资源
    最近更新 更多