J'ai une base de données SQLite que j'utilise pour un site web. Le problème est que lorsque j'essaie de INSERT INTO
dedans, j'obtiens une PDOException
SQLSTATE[HY000]: Erreur générale: 8 tentative d'écriture dans une base de données en lecture seule
J'ai utilisé SSH pour accéder au serveur et vérifier les autorisations, et la base de données a les autorisations
-rw-rw-r--
Je ne suis pas très familier avec les permissions *nix, mais je suis assez sûr que cela signifie
- Pas un répertoire
- Le propriétaire a les permissions de lecture/écriture (c'est moi, selon
ls -l
) - Le groupe a les permissions de lecture/écriture
- Tout le monde d'autre a seulement les permissions de lecture
J'ai aussi cherché partout où je savais avec le programme sqlite3
, et je n'ai rien trouvé de pertinent.
Parce que je ne savais pas avec quelles permissions PDO essaie d'ouvrir la base de données, j'ai fait
chmod o+w supplies.db
Maintenant, j'obtiens une autre PDOException
:
SQLSTATE[HY000]: Erreur générale: 14 impossible d'ouvrir le fichier de base de données
Mais cela se produit SEULEMENT lorsque j'essaie d'exécuter une requête INSERT
après l'ouverture de la base de données.
Des idées sur ce qui se passe?
0 votes
Fondamentalement, le httpd (apache > php > PDO) n'est pas vous, donc il ne possède pas le fichier, donc il n'a pas les permissions d'écriture... intéressant...
0 votes
sudo chgrp www-data test.db
avec l'ajout des autorisations a fonctionné pour moi0 votes
Cette erreur est également affichée si vous essayez d'accéder à une base de données supprimée