Всякий раз, когда я пытаюсь сделать запрос БД с конкретным пользователем БД (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, но ответ там не применим - кажется, только один пользователь 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.

Есть идеи?

0