Получение ошибки, что база данных заблокирована при обновлении страницы - PullRequest
1 голос
/ 22 мая 2010

Я использую apache с mod mono, и мое приложение asp.net использует mono sqlite в качестве своей базы данных. Когда я обновляю страницу дважды, я получаю ошибку заблокированной БД. Папка, в которой он находится, называется chmod 777. Веб-приложение создает sqlite.db и sqlite.db-journal, но, похоже, не может удалить журнал. Также это имеет проблемы, когда я загружаю страницу один раз. Это определенно кажется проблемой разрешения.

Я в замешательстве. Какие разрешения мне нужно установить? Я попытался создать файлы с помощью 777, но мне не повезло.

-edit- Я не нашел решения, однако я подумал, насколько глупым я был, так как планировал использовать mysql для своего веб-приложения. Так что я просто портировал код, и у меня больше не было проблем.

Ответы [ 2 ]

4 голосов
/ 22 мая 2010

При создании / удалении файла права доступа к каталогу имеют значение.

Итак, если вы действительно этого хотите, вам нужно установить права доступа к каталогу 777.

Пример:

$ ls -la
total 21
dr-xr-xr-x  2 me me  1024 May 22 19:19 .          #no write permissions to directory
drwxrwxrwt 21 root   root   19456 May 22 19:19 ..
-rwxrwxrwx  1 me me     0 May 22 19:19 abc        #all permissions to file abc
$ rm abc
rm: cannot remove `abc': Permission denied        #abc has 777, but deleting doesn't work
$ chmod 777 .                                     #change directoy's permissions
$ rm abc                                          #now removing works
$ ls                                              #file abc is gone

Причина в том, что при удалении файла вы фактически изменяете каталог , а не сам файл .

Подумайте о жесткой ссылке: сам файл не изменится, если вы удалите одну жесткую ссылку на него, но каталог изменится.

0 голосов
/ 22 мая 2010

Похоже, что один экземпляр сеанса в apache блокирует другой сеанс, т. Е. Файл db открыт исключительно. Попробуйте запустить базу данных (модель) как одноэлементную (или аналогичную), к которой имеют доступ все сеансы.

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