0
私はデータベースにデータを置く簡単なpythonスクリプトを持っています。スクリプトと データベースの所有者はすべてwww-data
です。 sudo python
を実行して コマンドを1つずつ書き込むと動作しますが、python monitor.py
またはsudo python monitor.py
を実行すると動作しません。それは、"attempt to write a read only database"
と言います。Sqlite python - 読み取り専用データベースを作成しよう
これはmy script次のとおりです。(それは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()
nginxがデータベースにアクセスできるように、ユーザのWWWデータを保持する必要があります。 –
@CCezar 'chown www-data:www-data/var/db/arduino.db'を実行して、データベースの所有者とグループを' www-data'に変更します。 –
私はそれをしましたが、残念ながらエラーは残っています –