Сервер Linux / Unix: доступ к базе данных SQL, которая находится в другом каталоге, чем выполнение скрипта - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть скрипт Python, который выполняет запрос SQL и получает информацию из файла базы данных SQLite3.Файл базы данных SQLite3 находится в другом каталоге, чем каталог выполняемого сценария.Все это происходит на моем webhost (Unix-сервер cpanel) из каталога cgi-bin.

Мой вопрос / проблема: Можно ли получить доступ к скрипту Python / подключиться к SQLite3?База данных, которая находится в другом каталоге?Прямо сейчас, когда я запускаю скрипт на своем веб-хосте, он не может соединиться с базой данных SQLite3.

В этом каталоге на моем хосте существует файл python: public_HTML / cgi-bin / dataMiner /.И файл базы данных SQLite3 существует в этом каталоге public_HTML / cgi-bin /.

Мой код в скрипте Python:

import DataMiner

def connect_ex( f_name ):
    """ Post: """

    try:
        # When the script runs the file is never found but it actually does exist
        if not os.path.isfile( f_name ): 
            raise Exception("")

        conn = sqlite3.connect( f_name )

        return conn

    except IOError, msg:
        #print str(msg)
        return None

    except OSError, msg:
        #print str(msg)
        return None

    except sqlite3.OperationalError, msg:
        #print str(msg)
        return None

    except Exception, e:
        return None


conn  = connect_ex("../competitionDB.db")
res   = DataMiner.execute_query( conn, "SELECT * FROM MyTable;" )
print res
conn.close()

1 Ответ

0 голосов
/ 15 сентября 2011

В базе данных, которую я использую (firebird), вы должны указать полный путь к базе данных от корня на сервере

Так, например, "/var/folder/wwww/db/dbfile.db", когда / var находится в корневой папке с грубым

Просто сказать, где он находится ОТ веб-сайта "db / dbfile.db" не будет работать (по крайней мере для firebird)

Это также позволяетв целях безопасности поместить файл базы данных в папку, которой нет даже на сайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...