Таблица «только для чтения»

Вопрос:Когда я хочу выполнить запрос update в моей таблице, я получил сообщение об ошибке: 1036 - Таблица data доступна только для чтения. Как я могу это исправить? Атрибуты таблицы в /var/db/mysql установлены на 777. Функция "Восстановить таблицу", похоже, не помогает. Есть ли что-нибудь, что я могу с этим сделать? Лучший ответ: которому принадлежит /var/db/mysql и

Вопрос:

Когда я хочу выполнить запрос update в моей таблице, я получил сообщение об ошибке:

1036 – Таблица data доступна только для чтения.

Как я могу это исправить?

Атрибуты таблицы в /var/db/mysql установлены на 777.

Функция “Восстановить таблицу”, похоже, не помогает.

Есть ли что-нибудь, что я могу с этим сделать?

Лучший ответ:

которому принадлежит /var/db/mysql и в какой группе они находятся, должен быть mysql: mysql. вам также потребуется перезапустить mysql, чтобы изменения повлияли на

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

Ответ №1

В моем случае файл конфигурации mysql имел innodb_force_recovery = 1. Комментируя это, проблема была решена. Надеюсь, это поможет кому-то.

Ответ №2

Вы должны изменить владельца на MYSQL: MYSQL.

Используйте эту команду: chown -Rf mysql:mysql /var/lib/mysql/DBNAME

Ответ №3

(Этот ответ связан с заголовком, но нет оригинального вопроса.)

Если вы (как и я) пытаетесь временно изменить данные через интерфейс Workbench MySQL:

  • Если таблица не имеет первичного ключа, MySQL Workbench не может идентифицировать строку, которую вы пытаетесь изменить, поэтому вы не можете ее изменить.

  • Решение в этом случае состоит в том, чтобы либо изменить данные по другому маршруту, либо просто добавить первичный ключ в таблицу.

В любом случае, я надеюсь, что это поможет кому-то:)

Ответ №4

Моя ситуация – каждый раз, когда мне нужно было отредактировать ” innodb_force_recovery = 1 ” в my.ini, чтобы заставить mysql запускаться, и в журнале ошибок отображалась какая-то ошибка:

Попытка открыть ранее открытое табличное пространство. Предыдущее табличное пространство mysql/innodb_table_stats использует идентификатор пространства: 1 в filepath:.Mysqlinnodb_table_stats.ibd. Не удается открыть профиль табличного пространства /profile_commentmeta, который использует идентификатор пространства: 1 в filepath:.Profileprofile_commentmeta.ibd

Я не знал, почему этот файл не удалось открыть, и это вызвало так много других проблем “только чтение таблицы” и для других баз данных.

Итак, вот как я исправил эту проблему простым способом, не повреждая другие файлы.

1 Прежде всего, убедитесь, что вы добавили innodb_force_recovery = 1 ниже [mysqld] в файл my.ini, и он работает по пути: X:xamppmysqlbinmy.ini

2 Затем следующим шагом экспортируйте все базы данных через localhost/phpmyadmin на вкладке экспорта и сохраните их где-нибудь, например так:

-Закомментируйте filefolder данных в данный Бак, а затем создать новый filefolder данных,

4 Следующим шагом импортируйте всю базу данных .sql обратно из панели phpmyadmin, пожалуйста, также скопируйте папку phpmyadmin из старой папки data-bak в новую папку данных data. Если какой-либо файл необходим, вернитесь в файловую папку data-bak для копирования и вставки.

Теперь все исправлено и сделано, не нужно заставлять mysql запускаться каждый раз. Надеюсь, это также работает для вас.

Ответ №5

MySQL не имеет права на запись в файл базы данных. Проверьте разрешения и владельца файла.

Ответ №6

В Windows я использую сервер innodb_force_recovery = 1 я комментирую строку в my.ini innodb_force_recovery = 1 до #innodb_force_recovery = 1 проблема решена

Ответ №7

Я решил ту же проблему, отредактировав приложение. файл конфигурации брони. Нашел ответ здесь: qaru.site/questions/184742/… 1

Ответ №8

Другим способом получения этой ошибки является создание вашей таблицы с помощью инструкции “Как” и использование в качестве источника объединенной таблицы. Таким образом, новая таблица создается только для чтения и не может “получать” новые записи.

так

CREATE TABLE ic.icdrs_kw37 LIKE ic.icdrs … #<- a merged table.

то

REPLACE INTO ic.icdrs_kw37 … # -> «Table is read-only»

ошибка или функция?

Оцените статью
Добавить комментарий