簡體   English   中英

SQLite Python-嘗試編寫一個只讀數據庫

[英]Sqlite python - attempt to write a read only database

我有一個簡單的python腳本,可將數據放入數據庫中。 腳本和數據庫都具有所有者www-data 當我運行sudo python並一個接一個地編寫命令時,它可以工作,但是如果我運行python monitor.pysudo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM