KDE Kontact 应用程序无法启动。Akonadi 个人信息管理服务无法运行

Dev*_*ACE 5 kde5 kde-neon

在寻找一套好的邮件/联系人/日历 .etc 应用程序时,我尝试了 KDE 的Kontact,并在启动几乎所有捆绑应用程序(kmail、korganiser .etc)时遇到了以下问题。应用程序会显示一个像图像 1 一样的加载屏幕,然后它会在图像 2 中显示错误,说The Akonadi personal information management service is not operational.或类似的东西。

图 1: 加载中...

图 2: 错误

这是我提供的系统信息screenfetch

 OS: KDE neon 5.12
 Kernel: x86_64 Linux 4.13.0-45-generic
 Uptime: 4h 37m
 Packages: 2060
 Shell: bash 4.3.48
 Resolution: 1280x800
 DE: KDE 5.47.0 / Plasma 5.13.1
 WM: KWin
 GTK Theme: Breeze [GTK2/3]
 Icon Theme: breeze
 Font: Noto Sans Regular
 CPU: Intel Core2 Duo P8700 @ 2x 2.534GHz [36.0°C]
 GPU: intel
 RAM: 1802MiB / 2946MiB
Run Code Online (Sandbox Code Playgroud)

我已经尝试卸载(并重新安装)Kontact 套件(有和没有--purge参数apt出于某种原因,当我单击错误屏幕上的“详细信息”按钮时,它似乎什么也没做。

我已经将自检报告文件保存到我的桌面,然后忘记了它在那里(我的删节)。

Dev*_*ACE 5

解决方案

错误日志显示mysql这些 K* 应用程序所需的服务器的 akonadi 版本正在尝试访问,~/.local/share/akonadi/db_data/ 除非db_data不存在,因此它会抛出一个错误touch ~/nonexistent_dir/file.txt

要解决,只需运行以下命令。 cd ~/.local/share/akonadi/; mkdir db_data


说明

做了很多周围挖在互联网上后(有资料体面的数额,但大部分是不完整/约与Akonadi的相似但不相同的问题尚未解决的论坛话题)我能找到从KDE的Akonadi的总体概述其是我自己调查的绝佳开端。

在使用链接中提到的命令后,我得到了以下输出(我的编辑):

$ akonadictl start
$ Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
mysqld: [ERROR] Could not open required defaults file: /home/[my username]/.config/akonadi/
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
org.kde.pim.akonadiserver: database server stopped unexpectedly
org.kde.pim.akonadiserver: Database process exited unexpectedly during initial connection!
org.kde.pim.akonadiserver: executable: "/usr/sbin/mysqld-akonadi"
org.kde.pim.akonadiserver: arguments: ("--defaults-file=/home/[my username]/.local/share/akonadi/mysql.conf", "--datadir=/home/[my username]/.local/share/akonadi/db_data/", "--socket=/tmp/akonadi-[my username].UXCgLp/mysql.socket", "--pid-file=/tmp/akonadi-[my username].UXCgLp/mysql.pid")
org.kde.pim.akonadiserver: stdout: ""
org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory)\n2018-06-21T19:34:18.989616Z 0 [Warning] The syntax '--log_warnings/-W' is deprecated and will be removed in a future release. Please use '--log_error_verbosity' instead.\n2018-06-21T19:34:18.989703Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).\n2018-06-21T19:34:18.991172Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:18.992274Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.22-0ubuntu0.16.04.1) starting as process 11859 ...\n2018-06-21T19:34:19.006500Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006549Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006623Z 0 [ERROR] failed to set datadir to /home/[my username]/.local/share/akonadi/db_data/\n2018-06-21T19:34:19.006632Z 0 [ERROR] Aborting\n\n2018-06-21T19:34:19.006658Z 0 [Note] Binlog end\n2018-06-21T19:34:19.006726Z 0 [Note] /usr/sbin/mysqld: Shutdown complete\n\n"
org.kde.pim.akonadiserver: exit code: 1
org.kde.pim.akonadiserver: process error: "Unknown error"
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/akonadi-[my username].UXCgLp/mysql.socket' (2)'
Check that mysqld is running and that the socket: '/tmp/akonadi-[my username].UXCgLp/mysql.socket' exists!
org.kde.pim.akonadiserver: Failed to remove runtime connection config file
org.kde.pim.akonadicontrol: Application 'akonadiserver' exited normally...
Run Code Online (Sandbox Code Playgroud)

这产生了一些有趣的线条。有问题的一个是org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory)。对我来说,这看起来像是程序试图写入一个它无权访问的目录并抛出错误,就像touch ~/nonexistent_dir/file.txt会那样。

所以我跑了cd ~/.local/share/akonadi/; mkdir db_data再试。巴姆它奏效了。

  • 注意:如果这对您不起作用,请尝试从命令行卸载 `akonadi-server` 包并在重新安装 `~/.config/akonadi/` 和 `~/.local/share/akonadi/` 之前删除` akonadi-server` 及其依赖包(`akonadi-server kdepim-runtime kmail kontact korganizer`)。 (3认同)