[英]Sqlite python - attempt to write a read only database
我有一個簡單的python腳本,可將數據放入數據庫中。 腳本和數據庫都具有所有者www-data
。 當我運行sudo python
並一個接一個地編寫命令時,它可以工作,但是如果我運行python monitor.py
或sudo python monitor.py
則它不起作用; 它說: "attempt to write a read only database"
。
這是我的腳本 :(它從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()
聽起來像是權限問題。 寫訪問權限僅授予該用戶(即root)。 您需要將用戶更改為直接自己而不是root。 您可以在許多* nix系統上使用chmod
進行此操作。 您還可以對組中的任何人進行寫訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.