La Table est en lecture seule

Quand je veux exécuter un update requête sur ma table, j'ai une erreur disant:

1036 - Table data est en lecture seule.

Comment puis-je réparer ça?

Table des attributs de /var/db/mysql sont définies à l' 777.

la fonction 'table de réparation' ne semble pas aider.

y a-t-il quelque chose que je puisse faire avec ça?

20
demandé sur Cyclone 2012-03-06 03:50:57

6 réponses

qui possède /var/db / mysql et dans quel groupe sont-ils, devrait être mysql:mysql. vous devrez également redémarrer mysql pour que les modifications prennent effet

vérifiez aussi que l'utilisateur actuellement connecté avait L'accès GRANT pour mettre à jour

25
répondu ncremins 2012-03-05 23:55:25

dans mon cas, le fichier de configuration mysql avait innodb_force_recovery = 1. Le commentaire a résolu le problème. Espérons que cela aide quelqu'un.

23
répondu Rahi 2016-11-04 12:44:22

Vous devriez changer le propriétaire en MYSQL: MYSQL.

Utilisez cette commande: chown -Rf mysql:mysql /var/lib/mysql/DBNAME

5
répondu kamranonline 2014-05-06 14:12:17

(cette réponse est liée au titre, mais non à la question initiale.)

Dans le cas où vous (comme moi) sont en train de modifier temporairement les données via MySQL Workbench interface:

  • si la table n'a pas de clé primaire, MySQL Workbench n'a aucun moyen d'identifier la ligne que vous essayez de modifier, donc vous ne pouvez pas la modifier.

  • la Solution dans ce cas est soit de modifier les données via une autre route, soit simplement d'ajouter un la clé primaire de la table.

En tout cas, j'espère que cela aide quelqu'un :)

2
répondu Fom 2017-03-07 12:23:51

MySQL n'a pas accès en écriture au fichier de base de données. Vérifiez les permissions et le propriétaire du fichier.

1
répondu Borodin 2012-03-05 23:54:24

une autre façon de recevoir cette erreur est de créer votre table avec une instruction "Like" et d'utiliser comme source une table fusionnée. De cette façon, la nouvelle table de création est en lecture seule et ne peut pas "recevoir" de nouveaux enregistrements.

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

puis:

REPLACE INTO ic.icdrs_kw37 ...  # -> "Table is read-only"

bug ou fonctionnalité?

-2
répondu user1693885 2013-09-19 09:14:42