我将 Ubuntu 19.04 升级到 19.10 并且 Akonadi (5.11.3) 在重新启动后没有启动。当我尝试在命令行中启动 akonadi 服务器时,这就是我得到的:
~$ akonadictl 开始
连接到不推荐使用的信号 QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
org.kde.pim.akonadiserver:启动 Akonadi 服务器...
org.kde.pim.akonadiserver:数据库服务器意外停止
org.kde.pim.akonadiserver:数据库进程在初始连接期间意外退出!org.kde.pim.akonadiserver:可执行文件:“/usr/sbin/mysqld-akonadi” org.kde.pim.akonadiserver:参数:(“--defaults-file=/home/me/.local/share/akonadi/ mysql.conf", "--datadir=/home/me/.local/share/akonadi/db_data/", "--socket=/run/user/1001/akonadi/default/mysql.socket", "-- pid-file=/run/user/1001/akonadi/default/mysql.pid")
org.kde.pim.akonadiserver:stdout:“”org.kde.pim.akonadiserver:stderr:“”org.kde.pim.akonadiserver:退出代码:1
org.kde.pim.akonadiserver:进程错误:“未知错误”mysqladmin:连接到'localhost'的服务器失败错误:'无法通过套接字连接到本地MySQL服务器'/run/user/1001/akonadi/default/ mysql.socket' (2)' 检查 mysqld 是否正在运行并且套接字:'/run/user/1001/akonadi/default/mysql.socket' 存在!
org.kde.pim.akonadiserver:无法删除运行时连接配置文件 org.kde.pim.akonadiserver:正在关闭 AkonadiServer...
我使用以下输入检查 mysql.err 文件。
~$ cat ~/.local/share/akonadi/db_data/mysql.err
2019-10-19T11:27:02.910707Z 0 [警告] [MY-010097] [服务器] --secure-file-priv 的不安全配置:当前值不限制生成文件的位置。考虑将其设置为有效的非空路径。
2019-10-19T11:27:02.910736Z 0 [系统] [MY-010116] [服务器] /usr/sbin/mysqld (mysqld 8.0.17-0ubuntu2) 作为进程 8385 启动
2019-10-19T11:27:02.912513Z 0 [警告] [MY-013242] [服务器] --character-set-server: 'utf8' 当前是字符集 UTF8MB3 的别名,但将是 UTF8MB4 的别名在未来的版本中。请考虑使用 UTF8MB4 以便明确。
2019-10-19T11:27:02.912523Z 0 [警告] [MY-013244] [服务器] --collation-server: 'utf8_general_ci' 是已弃用的字符集 UTF8MB3 的排序规则。请考虑使用带有适当排序规则的 UTF8MB4。2019-10-19T11:27:02.917836Z 1 [系统] [MY-011012] [服务器] 开始升级数据目录。
2019-10-19T11:27:03.171213Z 1 [错误] [MY-010781] [服务器] 在 mysql 架构中找到 ./mysql/index_stats.frm 文件。DD 将创建具有相同名称的 .ibd 文件。请重命名表并重新开始升级过程。
2019-10-19T11:27:03.171223Z 1 [错误] [MY-010336] [服务器] 找到与字典表之一同名的 .frm 文件。
2019-10-19T11:27:03.171330Z 0 [错误] [MY-010020] [服务器] 数据字典初始化失败。
2019-10-19T11:27:03.171338Z 0 [错误] [MY-013236] [服务器] 指定的数据目录 /home/me/.local/share/akonadi/db_data/ 不可用。您可以删除服务器添加到其中的所有文件。
2019-10-19T11:27:03.697829Z 0 [错误] [MY-010065] [服务器] 无法关闭组件基础架构。
2019-10-19T11:27:03.171475Z 0 [错误] [MY-010119] [服务器] 中止
2019-10-19T11:27:03.697752Z 0 [系统] [MY-010910] [服务器] /usr/sbin/mysqld:关闭完成 (mysqld 8.0.17-0ubuntu2) (Ubuntu)。
为什么从 Ubuntu 19.04 升级到 19.10 后 Akonadi 不启动?这与升级到mysql 8.0有关吗?如何解决?
遇到同样的麻烦,akonadi 升级后因为 MySQL 无法运行。对我来说,安装 MariaDB 不是一种选择,因为我的工作。我之前使用的是 MariaDB,我不得不切换到 MySQL。
这些是我收到的错误和警告。
首先将摆脱嘈杂的警告
vim /home/mathieu/.local/share/akonadi/mysql.conf
根据这个文档替换
character_set_server=utf8
成utf8mb4注释掉,默认是好的https://dev.mysql.com/doc/refman/8.0/en/charset-server.htmlcollation_server=
我认为我们无能为力,
secure_file_priv=
我相信 akonadi 需要它为空才能从任意位置加载文件。文档:https ://dev.mysql.com/doc/refman/8.0/en/string-functions.html然后,实际的错误
Failed to find valid data directory
由于 akonadi 主要是临时数据,我认为最简单的方法是杀死 db_data 目录并重新开始。我们将重命名文件夹而不是删除它
该
--initialize
选项重新启动db_data
目录。如果你比较两个目录,你会看到一堆与前一个不同的文件。现在收到此错误
我将
lower_case_table_names=
mysql.conf 中的这个选项从 1 切换到 0您还需要注释掉这个已弃用的选项
log_warnings=2
我不再使用长组参数直接调用 mysqld-akonadi,而是简单地运行
akonadiserver
和cat
读取 mysql.error 日志文件现在收到此错误
[Server] unknown variable 'query_cache_size=0'
将对此发表评论
也需要注释掉
query_cache_type=0
并且 akonadi 能够与 MySQL 8 一起运行
总之:
希望这可以帮助
更新:如果您收到此错误
这意味着该列已添加,但数据库迁移未标记为已完成。我建议
db_data
再次关闭该文件夹,手动运行初始化。并启动 akonadiserver它终于为我运行了。和在 19.04 中不断崩溃的 korganizer 现在运行了;)
更新(2020 年):重置 Akonadi 数据库时要非常小心这个错误 https://bugs.kde.org/show_bug.cgi?id=414400
自 19.10 以来,我遇到了太多问题。MariaDB 或 MySQL 8 都不能正常工作。一直不得不重置 Akonadi。最后通过 Docker 运行 MySQL 5.6 和 5.7
sudo docker run --name mysql57 --rm -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=docker -d mysql:5.7
但一直有问题。我放弃了 Akonadi/kdepim,卸载了所有相关软件包并切换到 Thunderbird。等离子运行平稳。
现在应该使用 mariadb。mysql 8 不兼容。
自从从 Kubuntu 19.04 更新到 19.10 后,我也遇到了 Akonadi 问题。mysql 日志文件
~/.local/share/akonadi/db_data/mysql.err
包含以下错误:所以,我评论了那些
/home/NNN/.local/share/akonadi/mysql.conf
:老实说,我并不关心,改变了哪些变量,会产生什么后果......
错误是说 MySQL 中有一个用户表,其名称
index_stats
似乎很奇怪。除非您或您使用的程序之一创建了该表。换句话说,您不能再拥有具有该名称的表,因为 MySQL 8.0 使用具有该名称的表。
您可以尝试将文件重命名为类似的名称,
index_stats_bak.frm
但很难说任何程序使用它会发生什么。这篇文章有一个系统现在使用的表名列表,
index_stats
其中包括。查看创建表的 Akonadi 的源代码,似乎不太可能与 MySQL 8 发生冲突。我的猜测是 MySQL 的部分升级已经留下了新表的一部分,但不是全部。index_stats 可能是在该部分更新中创建的。