Lorsque je veux exécuter une requête update
sur ma table, un message d'erreur s'affiche:
1036 - La table
data
est en lecture seule.
Comment puis-je résoudre ce problème?
Les attributs de table dans /var/db/mysql
sont définis sur 777
.
La fonction 'Repair Table' ne semble pas aider.
Y a-t-il quelque chose que je puisse faire avec ça?
À qui appartient/var/db/mysql et dans quel groupe appartiennent-ils? mysql: mysql vous aurez également besoin de redémarrer mysql pour que les modifications prennent effet
vérifier également que l'utilisateur actuellement connecté dispose d'un accès GRANT pour mettre à jour
Dans mon cas, le fichier de configuration de mysql avait innodb_force_recovery = 1. Ce commentaire a résolu le problème. J'espère que ça 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.)
Si vous (comme moi) essayez de modifier temporairement vos données via l'interface MySQL Workbench:
Si la table n'a pas de clé primaire, MySQL Workbench n'a aucun moyen d'identifier la ligne que vous essayez de modifier, vous ne pouvez donc pas la modifier.
Dans ce cas, la solution consiste à modifier les données via un autre chemin ou simplement à ajouter une clé primaire à la table.
En tout cas, j'espère que ça aidera quelqu'un :)
MySQL n'a pas d'accès en écriture au fichier de base de données. Vérifiez les autorisations et le propriétaire du fichier.
Ma situation est chaque fois que je devais éditer "innodb_force_recovery = 1" dans my.ini pour forcer mysql à démarrer, et le journal des erreurs affichait une erreur disant:
Tentative d'ouvrir un tablespace précédemment ouvert. L'espace de table précédent mysql/innodb_table_stats utilise l'espace ID: 1 dans chemin_fichier:.\Mysql\innodb_table_stats.ibd. Impossible d'ouvrir le profil d'espace table/profile_commentmeta qui utilise l'espace ID: 1 dans chemin_fichier:.\Profile\profile_commentmeta.ibd
Je ne savais pas pourquoi ce fichier ne pouvait pas s'ouvrir et cela causait aussi beaucoup d'autres problèmes de "lecture de table" à d'autres bases de données.
Voici comment j'ai résolu ce problème de manière simple sans nuire aux autres fichiers.
1 Tout d’abord, assurez-vous d’ajouter (innodb_force_recovery = 1} _ Au-dessous de [mysqld] dans mon fichier.ini, et cela fonctionne sous le chemin: X :\xampp\mysql\bin\my.ini
2 Ensuite, exportez toutes les bases de données via localhost/phpmyadmin sous l’onglet export, et stockez-les quelque part, comme ceci:
3 commentez le dossier données _ en data-bak, puis créez un nouveau dossier données,
4 Étape suivante, importez tous les .sql bases de données en arrière du panneau phpmyadmin, s'il vous plaîtégalement copiéphpmyadmin du fichier l'ancien data-bak dossier de fichiers dans le nouveau dossier de fichiers données. Si un fichier est nécessaire, retournez dans le dossier de fichiers data-bak pour le copier et le coller.
Maintenant que tout est réglé et résolu, vous n'avez pas besoin de forcer mysql à démarrer à chaque fois . J'espère que cela fonctionnera aussi pour vous.