Титла: <Решен> KMail, Akonadi, MySQL, MariaDB и яко споменаване на програмисти
Публикувано от: luda_glawa в Nov 10, 2020, 15:35
Вчера направих грешката да реша, че ми е време да мина от Kubuntu 18.04 на Kubuntu 20.04 :'( Дълго време се дърпах, особено след като видях, че KMail го заменят с Thunderbird и MySQL с MariaDB при чиста инсталация, но накрая се престраших - направих обновяване, както са го описали, че трябва да стане, през графичния инструмент. Преди това си направих архив на MySQL базите, както си пише в учебниците и си бях спокоен. Инсталира се - рестартира се и ... започна едно псуванЙе. Точно това, с което не съм имал никога проблем при ъпгрейд/чиста преинсталация, точно то се счупи - KMail. Естествено не съм му направил архив и в следствие на това писма йок :( То те са си там - намерих ги в директорията им, но ги няма в мейл клиента, защото Akonadi не тръгва, защото решили, че в 20.04 ще махат MySQL-а и ще го заменят с MariaDB и той гърми със странни и страшни грешки. Интересното е, че MySQL-а си работи и базите данни са си там. Тези, които ми бяха важни. Бъдете добри - дайте едно рамо :) 1. Лог-а на Kmail shagree@Systemata-3:~$ kmail Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) org.kde.pim.akonadiserver: Starting up the Akonadi Server... 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/shagree/.local/share/akonadi/mysql.conf", "--datadir=/home/shagree/.local/share/akonadi/db_data/", "--socket=/run/user/1000/akonadi/mysql.socket", "--pid-file=/run/user/1000/akonadi/mysql.pid") org.kde.pim.akonadiserver: stdout: "" org.kde.pim.akonadiserver: stderr: "mysqld-akonadi: [ERROR] Failed to open required defaults file: /home/shagree/.local/share/akonadi/mysql.conf\nmysqld-akonadi: [ERROR] Fatal error in defaults handling. Program aborted!\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 '/run/user/1000/akonadi/mysql.socket' (2)' Check that mysqld is running and that the socket: '/run/user/1000/akonadi/mysql.socket' exists! org.kde.pim.akonadiserver: Failed to remove runtime connection config file org.kde.pim.akonadiserver: Shutting down AkonadiServer... org.kde.pim.akonadicontrol: Application '/usr/bin/akonadiserver' exited normally... org.kde.pim.akonadicore: Job error: "" for collection: QVector()
org.kde.pim.akonadicore: Job error: "" for collection: QVector()
org.kde.pim.messagelist: Failed to load tags "" org.kde.pim.kmail: "" org.kde.pim.kmail: ""
Terminated shagree@Systemata-3:~$
2. Съдържанието на /home/shagree/.local/share/akonadi shagree@Systemata-3:~$ ls -l /home/shagree/.local/share/akonadi total 36 -rw-rw-r-- 1 shagree shagree 102 ное 9 11:16 akonadi_control.error.old -rw-rw-r-- 1 shagree shagree 1366 ное 10 15:28 Akonadi.error -rw-rw-r-- 1 shagree shagree 140 ное 10 15:28 Akonadi.error.old -rw-rw-r-- 1 shagree shagree 342 ное 9 11:18 akonadiserver.error.old drwxrwxr-x 3 shagree shagree 4096 ное 9 14:04 db_data drwxrwxr-x 2 shagree shagree 4096 мар 6 2018 db_misc drwxrwxr-x 102 shagree shagree 4096 мар 6 2018 file_db_data -rw-rw-r-- 1 shagree shagree 3660 ное 9 14:53 mysql.conf drwxrwxr-x 8 shagree shagree 4096 мар 6 2018 search_db lrwxrwxrwx 1 shagree shagree 27 ное 9 11:16 socket-Systemata-3 -> /tmp/akonadi-shagree.WFyARs lrwxrwxrwx 1 shagree shagree 22 ное 10 10:11 socket-Systemata-3-default -> /run/user/1000/akonadi shagree@Systemata-3:~$
3. Проба за ръчно стартиране на Akonadi shagree@Systemata-3:~$ akonadictl start Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) shagree@Systemata-3:~$ org.kde.pim.akonadiserver: Starting up the Akonadi Server... 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/shagree/.local/share/akonadi/mysql.conf", "--datadir=/home/shagree/.local/share/akonadi/db_data/", "--socket=/run/user/1000/akonadi/mysql.socket", "--pid-file=/run/user/1000/akonadi/mysql.pid") org.kde.pim.akonadiserver: stdout: "" org.kde.pim.akonadiserver: stderr: "mysqld-akonadi: [ERROR] Failed to open required defaults file: /home/shagree/.local/share/akonadi/mysql.conf\nmysqld-akonadi: [ERROR] Fatal error in defaults handling. Program aborted!\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 '/run/user/1000/akonadi/mysql.socket' (2)' Check that mysqld is running and that the socket: '/run/user/1000/akonadi/mysql.socket' exists! org.kde.pim.akonadiserver: Failed to remove runtime connection config file org.kde.pim.akonadiserver: Shutting down AkonadiServer... org.kde.pim.akonadicontrol: Application '/usr/bin/akonadiserver' exited normally...
Титла: Re: <Solved> KMail, Akonadi, MySQL, MariaDB и яко споменаване на програмисти
Публикувано от: luda_glawa в Nov 10, 2020, 18:12
Много трудно, но намерих временно (знае ли човек) решение. Всичко е описано - тук ($2) Идеята е, че вместо вградения в Akonadi MySQL сървър, трябва да бъде настроен да използва реален такъв. При мен се получи. Старата поща се показа и всичко работи нормално. Workaround
Since the installation of MySQL server removed akonadi-backend-mysql, we should tell Akonadi to use the MySQL server instead of akonadi-backend-mysql, as said in the KDE TechBase. Editing Akonadi configuration file
Note. The word USER must be changed to the current system username. If you login into Linux with john, then change USER with john.
Open the file /home/USER/.config/akonadi/akonadiserverrc. We should have something like this:
[%General] Driver=QMYSQL
[QMYSQL] Host= Name=akonadi Options="UNIX_SOCKET=/run/user/1000/akonadi/mysql.socket" ServerPath=/usr/sbin/mysqld-akonadi StartServer=true
Change it in this way:
[Debug] Tracer=null
[%General] Driver=QMYSQL
[QMYSQL] Host=localhost Name=akonadi Options="UNIX_SOCKET=/var/run/mysqld/mysqld.sock" ServerPath=/usr/sbin/mysqld StartServer=false
Save and exit the editor. Add your standard system user to MySQL
In the terminal type:
sudo mysql
and then in MySQL prompt (change USER with your username.):
CREATE USER 'USER'@'localhost' IDENTIFIED WITH auth_socket;
Please note that the username USER is the same as the standard user in your system. Akonadi will use USER as username to connect to MySQL via auth_socket.
Do not exit from MySQL prompt because we will do other operations. Create the "akonadi" database
In MySQL prompt:
CREATE DATABASE akonadi;
Give USER the privileges on database "akonadi"
In MySQL prompt (change USER with your username.):
GRANT ALL PRIVILEGES ON akonadi.* TO 'USER'@'localhost';
Then:
FLUSH PRIVILEGES;
Then exit from MySQL prompt:
exit
Try to start Akonadi
In the Bash prompt:
akonadictl start
Akonadi should start correctly.
|