Ubuntu 19.04を19.10にアップグレードすると、再起動後にAkonadi(5.11.3)が起動しません。コマンドラインでakonadiサーバーを起動しようとすると、次のようになります。
〜$ akonadictl start
非推奨のシグナル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:arguments:( "--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] [サーバー]辞書テーブルの1つと同じ名前の.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へのアップグレードに接続されていますか?これをどのように解決できますか?
mariadbを使用する必要があります。 mysql 8には互換性がありません。
Sudo apt install mariadb-server-core-10.3 mariadb-client-core-10.3
同じ問題が発生し、アップグレード後にMySQLが原因でakonadiが実行されません。私の仕事のため、MariaDBをインストールすることは選択肢ではありません。以前はMariaDBを使用していたため、MySQLに切り替える必要がありました。
1 │ 2019-11-17T22:14:02.183446Z 0 [Warning] [MY-010097] [Server] Insecure configuration for --secure-file-priv: C
│ urrent value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2 │ 2019-11-17T22:14:02.183483Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.17-0ubuntu2) startin
│ g as process 30942
3 │ 2019-11-17T22:14:02.186416Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an a
│ lias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider usi
│ ng UTF8MB4 in order to be unambiguous.
4 │ 2019-11-17T22:14:02.186429Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8_general_ci' is a colla
│ tion of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation ins
│ tead.
5 │ 2019-11-17T22:14:02.194794Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
6 │ 2019-11-17T22:14:02.194929Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
7 │ 2019-11-17T22:14:02.195077Z 0 [ERROR] [MY-010119] [Server] Aborting
8 │ 2019-11-17T22:14:02.195315Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.1
│ 7-0ubuntu2) (Ubuntu).
これらは私が得ているエラーと警告です。
最初に騒々しい警告を取り除きますvim /home/mathieu/.local/share/akonadi/mysql.conf
このドキュメントによると、character_set_server=utf8
をutf8mb4コメントアウトcollation_server=
に置き換えると、デフォルトは適切です https://dev.mysql.com/doc/refman/8.0/en/charset-server。 html
secure_file_priv=
について何もできるとは思いません。任意の場所からファイルをロードできるようにするためにakonadiは空である必要があると思います。 doc: https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
次に、実際のエラーFailed to find valid data directory
akonadiはほとんど一時的なデータなので、db_dataディレクトリを削除してやり直すのが最も簡単だと思います。フォルダを削除するのではなく、名前を変更します
$ cd ~/.local/share/akonadi
$ mv db_data db_databkp
$ mkdir db_data
$ /usr/sbin/mysqld-akonadi --defaults-file=/home/mathieu/.local/share/akonadi/mysql.conf --datadir=/home/mathieu/.local/share/akonadi/db_data/ --socket=/run/user/1000/akonadi/default/mysql.socket --pid-file=/run/user/1000/akonadi/default/mysql.pid --initialize --console
--initialize
オプションはdb_data
dirを新たに開始します。両方のディレクトリを比較すると、前のファイルとは異なる一連のファイルが表示されます。
現在このエラーが発生しています
[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
Mysql.confのこのオプションlower_case_table_names=
を1から0に切り替えます
また、この非推奨のオプションをコメント化する必要があります
log_warnings=2
長い引数セットを使用してmysqld-akonadiを直接呼び出すのではなく、単にmysql.errorログファイルをakonadiserver
およびcat
ing実行する
このエラーが発生しています[Server] unknown variable 'query_cache_size=0'
これについてコメントします
また、コメントアウトする必要がありますquery_cache_type=0
akonadiはMySQL 8で実行できます
要約すれば:
お役に立てれば
更新:このエラーが発生した場合
org.kde.pim.akonadiserver: Running DB initializer
org.kde.pim.akonadiserver: "\nSql error: Duplicate column name 'version' QMYSQL: Unable to execute query\nQuery: ALTER TABLE SchemaVersionTable ADD COLUMN version INTEGER NOT NULL DEFAULT 0"
これは、列が既に追加されているが、データベースの移行に完了のフラグが付いていないことを意味します。手動で初期化を実行し、db_data
フォルダーを削除することをお勧めします。 akonadiserverの起動
ついに私のために実行されます。そして、19.04に絶えずクラッシュしていたkorganizerが実行されます;)
アップデート(2020):Akonadi DBをリセットするときは、このバグに十分注意してください https://bugs.kde.org/show_bug.cgi?id=4144
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に切り替えました。プラズマはスムーズに動きます。
Kubuntu 19.04から19.10に更新してからAkonadiの問題も発生しました。 mysqlログファイル~/.local/share/akonadi/db_data/mysql.err
には、次のようなエラーが含まれていました。
unknown variable 'log-warnings=2'
だから、私はそれらを/home/NNN/.local/share/akonadi/mysql.conf
でコメントアウトしました:
# print warnings and connection errors (default:1)
#log_warnings=2
.
.
# Memory allocated for caching query results (default:0 (disabled))
#query_cache_size=0
. .
# Do not cache results (default:1)
#query_cache_type=0
正直なところ、変更された変数とその結果はどうなるのか、私は気にしませんでした...
このエラーは、MySQLにindex_stats
という名前のユーザーテーブルがあることを示していますが、これは奇妙に見えます。あなたまたはあなたが使用するプログラムの1つがそのテーブルを作成しない限り。
言い換えると、MySQL 8.0はその名前のテーブルを使用するため、その名前のテーブルはもうありません。
ファイルの名前をindex_stats_bak.frm
のような名前に変更してみることができますが、それを使用するプログラムがどうなるかはわかりません。
この投稿 は、現在システムで使用されているテーブル名のリストindex_stats
を持っています。
テーブルを作成するAkonadiの source を見ると、MySQL 8と競合する可能性は非常に低いようです。新しいテーブルの一部を残しているMySQLの部分的なアップグレードがあったと思いますが、すべてではない。 index_statsは、おそらくその部分的な更新で作成されました。