Код ошибки: 1728. Не удается загрузить файл mysql.db. Таблица, вероятно, повреждена

Всякий раз, когда я пытаюсь сделать запрос БД с конкретным пользователем БД (myuser) Я получаю следующую ошибку:

Для пользователя 'myuser'@'localhost' запрещен доступ к базе данных 'mydatabase' [1044]

Я решил проверить гранты для этого пользователя и увидел, что один из грантов может получить выгоду от обновления, поэтому я попытался обновить его и получил следующую ошибку:

Код ошибки: 1728. Не удается загрузить файл mysql.db. Таблица, вероятно, повреждена

Я погуглил ошибку и обнаружил, что не могу загрузить файл mysql.proc. Таблица, вероятно, повреждена, что рекомендует делать mysql_upgrade -u root -pxxx, Я попробовал это и получил эту ошибку:

Произошла ошибка: mysql.session существует, но неправильно настроен. Для mysql.session нужны привилегии SELECT в базе данных performance_schema и таблице mysql.db, а также привилегии SUPER.

Я гуглю эту ошибку и обнаружил MySQL Upgrade Issue, но ответ там не применим - кажется, что только один mysql.session пользователь, когда я делаю SELECT * FROM mysql.user;, Так что я подумал, может быть, я просто создаю ГРАНТЫ сам:

GRANT SELECT ON `performance_schema`.* TO 'mysql.session'@'localhost';
GRANT SELECT ON `mysql`.`db` TO 'mysql.session'@'localhost';
GRANT SUPER ON *.* TO 'mysql.session'@'localhost';

Единственная проблема: когда я пытаюсь сделать это, я получаю то же самое Error Code: 1728. Cannot load from mysql.db. The table is probably corrupted "что я получил раньше.

Мой вопрос... что я могу сделать, чтобы это исправить? У меня есть полная резервная копия БД, которую я без проблем восстановил несколько месяцев назад, и если с тех пор в БД произошли какие-либо изменения в БД, то я могу проиграть. Может быть, мой лучший вариант - просто удалить MySQL и переустановить его? И если это так, то могу ли я предпринять какие-либо шаги, чтобы предотвратить повторное возникновение этой проблемы?

Я использую MySQL 5.7.25-0ubuntu0.16.04.2 в Ubuntu 16.04.5 LTS на капле Digital Ocean.

Есть идеи?

редактировать: я также получаю эту ошибку, когда я пытаюсь создать нового пользователя MySQL:

CREATE USER username IDENTIFIED BY 'password';

Я старался mysqlcheck -uroot mysql db и получил это обратно:

mysql.db                                           OK

Я старался ls -latr /var/lib/mysql/mysql/db* и получил это обратно:

-rw-r----- 1 mysql mysql   65 Nov  8 03:55 db.opt
-rw-r----- 1 mysql mysql  440 Nov 10 17:51 db.MYD
-rw-r----- 1 mysql mysql 5120 Feb 11 11:54 db.MYI
-rw-r----- 1 mysql mysql 9582 Feb 11 11:54 db.frm

Замечу, что нет *.ibd файла idk.

SELECT * FROM mysql.db, хотя вошел в систему как SSH root / MySQL, работает без проблем, но все " Error Code: 1728. Cannot load from mysql.db. The table is probably corrupted "ошибки также приходят ко мне при входе в систему как root SSH / MySQL root, так что idk.

0 ответов

Другие вопросы по тегам