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?
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
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.
Vous devriez changer le propriétaire en MYSQL: MYSQL.
Utilisez cette commande: chown -Rf mysql:mysql /var/lib/mysql/DBNAME
(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 :)
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.
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é?