‏הצגת רשומות עם תוויות mariahdb. הצג את כל הרשומות
‏הצגת רשומות עם תוויות mariahdb. הצג את כל הרשומות

יום חמישי, אוגוסט 31, 2023

קבצי mysql.err של אקנואדי לקחו את כל המקום בדיסק בתיקיית המשתמש בגלל באג של מריהדב, התיקון פשוט צריך לבצע mysql_upgrade על הסוקט הספציפי הזה @privacyfoss

היום גיליתי שנגמר לי כל המקום בתיקיית המשתמש הפרטי שלי בדביאן bookworm,  לקח לי קצת זמן לצמצם את המקור לבעיעות שדובר על קבצי שגיאות של mysql שהוא בשימוש של אקונאדי. לאחר חיפוש מצאתי שמקור הבעיה הוא בבאג קיים במהלך שדרוג שכנראה הוכנס בשדרוג גרסת מריהדב ל .10.3

קבצי הmysql.err וקבצי ה mysql.err.old לקחו מספר ג"ב טובים. אם אני זוכר נכון דובר על סה"כ 12 ג"ב עבור כל משתמש שיש לו אקונאדי על השרת.

הקבצים של akonadi נמצאים תחת התיקייה ~/.local/share/akonadi/db_data התוכן של קבצי השגיאות היו בסגנון של :
  [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
  [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type varbinary(255), found type longblob
  
הפתרון הוא די פשוט, צריך להפעיל את mysql_upgrade שנמצא בחבילת ה mariahdb_common:

דבר ראשון צריך לכבות את akonadi , אבל להפעיל את mariahdb להאזין ולקבל הודעות:
  akonadictl stop
  /usr/sbin/mysqld --defaults-file=/home/$USER/.local/share/akonadi/mysql.conf \
--datadir=/home/$USER/.local/share/akonadi/db_data/ \
--socket=/run/user/$(id -u)/akonadi/mysql.socket
לאחר מכן יש להפעיל שידרוג מחדש::
  mysql_upgrade  /run/user/$(id -u)/akonadi/mysql.socket
  
לאחר מכן לכבות את שירות ה mysql , אם הורגים את התהליך ע"י kill צריך למחוק את קובץ ה socket גם כן (אחרת לא תוכלו להפעיל את akonadi כי הוא ייכשל עם "org.kde.pim.akonadiserver: Database error: "Can't connect to local server through socket '/run/user/1000/akonadi/mysql.socket' (111) QMYSQL: Unable to connect"

קריפטי או לא, השגיאה די ברורה כשאתה עושה פעולות כאלה.
 
הבעייה שצריך להפעיל את זה עבור כל משתמש שמריץ אקונאדי בשרת ע"י אותו המשתמש, ועבור כל התקנת mysql שישובת על המחשב שלכם.

על הדרך תייגתי גם את @privacyfoss בשביל לראות באמת זה יופיע בעוד רשימת שירותים של תוכנה חופשית.