Ich habe ein einfaches Python-Skript, das Daten in eine Datenbank legt. Sowohl das Skript als auch die Datenbank haben Besitzer www-data
. Wenn ich sudo python
ausführen und die Befehle eins nach dem anderen schreibe, funktioniert es, aber wenn ich python monitor.py
oder laufen lasse, funktioniert es nicht; es sagt, "attempt to write a read only database"
.Sqlite Python - Versuch, eine schreibgeschützte Datenbank zu schreiben
Dies ist my script: (es empfängt Daten von Arduino)
from serial import Serial
from time import sleep
import sqlite3
serial_port = '/dev/ttyACM0';
serial_bauds = 9600;
# store the temperature in the database
def log_light(value):
conn=sqlite3.connect('/var/db/arduino.db')
curs=conn.cursor()
curs.execute("UPDATE sensor1 set status = (?)", (value,))
# commit the changes
conn.commit()
conn.close()
def main():
s = Serial(serial_port, serial_bauds);
s.write('T');
sleep(0.05);
line = s.readline();
temperature = line;
s.write('H');
sleep(0.05);
line = s.readline();
humidity = line;
s.write('L');
sleep(0.05);
line = s.readline();
light = line;
log_light(light);
if __name__=="__main__":
main()
Ich muss den Benutzer www-Daten zu halten, so dass Nginx auf die Datenbank zugreifen kann. –
@CCezar 'chown www-data: www-data/var/db/arduino.db', um den Besitzer und die Gruppe der Datenbank in' www-data' zu ändern. –
Ich habe das, der Fehler ist immer noch da leider –