Bug 43976 - "Cannot load from mysql.proc" после обновления до 10.6.9
Summary: "Cannot load from mysql.proc" после обновления до 10.6.9
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: mariadb-server (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 major
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-07 11:30 MSK by Ivan Alekseev
Modified: 2024-03-19 23:31 MSK (History)
4 users (show)

See Also:


Attachments
# strace mysql_upgrade (8.63 KB, text/plain)
2022-10-07 12:43 MSK, Ivan Alekseev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Alekseev 2022-10-07 11:30:26 MSK
Версия пакета: mariadb-server-10.6.9-alt1.1.x86_64

Стенд: alt-server-10-x86_64, обновленный до sisyphus

Шаги для воспроизведения:
1. Обновить Server 10 (mariadb-server-10.4.20 -> 10.6.9)
2. Запустить mysql: $ mysql
3. Создать БД:
MariaDB [(none)]> CREATE DATABASE zxc;
4. Выполнить любой из запросов:
MariaDB [zxc]> DROP PROCEDURE IF EXISTS zxc.zxc;
MariaDB [zxc]> DROP FUNCTION IF EXISTS zxc.zxc;

Фактический результат: ERROR 1728 (HY000): Cannot load from mysql.proc. The table is probably corrupted

Ожидаемый результат: Query OK, 0 rows affected, 1 warning (0.000 sec)

Пробовал сделать следующее:
1. # mysql_upgrade
FATAL ERROR: Could not open or create the upgrade info file '/db/mysql_upgrade_info' in the MariaDB Servers data directory, errno: 2 (No such file or directory)
2. MariaDB [(none)]> REPAIR TABLE mysql.proc;
+------------+--------+----------+----------+stage done
| Table      | Op     | Msg_type | Msg_text |
+------------+--------+----------+----------+
| mysql.proc | repair | status   | OK       |
+------------+--------+----------+----------+
1 row in set (0,118 sec)

На ошибку это не повлияло.

Помогло только пересоздание БД 'mysql':
# rm -rf /var/lib/mysql/db/mysql
# systemctl restart mysqld

Также ошибка воспроизводится в p10: mariadb-server-10.6.9-alt1.x86_64
Comment 1 Николай Костригин 2022-10-07 11:42:46 MSK
(Ответ для Ivan Alekseev на комментарий #0)
> Версия пакета: mariadb-server-10.6.9-alt1.1.x86_64
[...]
> Пробовал сделать следующее:
> 1. # mysql_upgrade
> FATAL ERROR: Could not open or create the upgrade info file
> '/db/mysql_upgrade_info' in the MariaDB Servers data directory, errno: 2 (No
> such file or directory)
[...]

Кто владелец файла /db/mysql_upgrade_info ?
Помогает ли 'chown mysql:mysql /var/lib/mysql/db/mysql_upgrade_info'?
Comment 2 Ivan Alekseev 2022-10-07 11:44:47 MSK
(Ответ для Николай Костригин на комментарий #1)
> (Ответ для Ivan Alekseev на комментарий #0)
> Кто владелец файла /db/mysql_upgrade_info ?
> Помогает ли 'chown mysql:mysql /var/lib/mysql/db/mysql_upgrade_info'?

Такого файла нет:
# l /var/lib/mysql/db/mysql_upgrade_info
ls: невозможно получить доступ к '/var/lib/mysql/db/mysql_upgrade_info': Нет такого файла или каталога
Comment 3 Ivan Alekseev 2022-10-07 12:43:55 MSK
Created attachment 11639 [details]
# strace mysql_upgrade

Вывод # strace mysql_upgrade во вложении.
Comment 4 Ivan Alekseev 2022-10-07 12:52:03 MSK
Команда mysql_upgrade успешно выполняется после отключения mysqld-chroot:
1. # control mysqld-chroot disabled
2. # systemctl restart mysqld
3. # mysql_upgrade
После этого ошибка "Cannot load from mysql.proc" не воспроизводится.

Но при попытке выполнить mysql_upgrade в chroot всё так же воспроизводится "FATAL ERROR: Could not open or create the upgrade info file '/db/mysql_upgrade_info'".
Comment 5 Ivan Alekseev 2022-10-07 12:54:33 MSK
(Ответ для Ivan Alekseev на комментарий #4)
> После этого ошибка "Cannot load from mysql.proc" не воспроизводится.
Уточню, после обратного включения mysqld-chroot ошибка тоже не воспроизводится.
Comment 6 Анатолий Кирсанов 2024-03-19 23:31:56 MSK
(Ответ для Ivan Alekseev на комментарий #4)
> Команда mysql_upgrade успешно выполняется после отключения mysqld-chroot:
> 1. # control mysqld-chroot disabled
> 2. # systemctl restart mysqld
> 3. # mysql_upgrade
> После этого ошибка "Cannot load from mysql.proc" не воспроизводится.
> 
> Но при попытке выполнить mysql_upgrade в chroot всё так же воспроизводится
> "FATAL ERROR: Could not open or create the upgrade info file
> '/db/mysql_upgrade_info'".

Спасибо, мил человек. Столкнулся с тем же самым в mariadb-10.6.16 на P10.
Вынужден был это сделать ради смены пароля root скриптом mariadb-secure-installation.

Иначе была ошибка "ERROR 1146 (42S02) at line 1: Table 'mysql.global_priv' doesn't exist".