Новичок в sqlite - не может создать базу данных - PullRequest
1 голос
/ 30 ноября 2011

Так что я очень новичок в этом и пытаюсь создать базу данных, используя sqlite (с инструкциями в их документации).Я получаю эту ошибку после первой строки кода.Кто-нибудь знает, что происходит?

Я использую терминал на OS X Lion.

$ sqlite3 ex1.db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table tb11(one varchar(10), two smallint);
Error: unable to open database "ex1.db": unable to open database file

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

Наиболее очевидной вещью будет отсутствие разрешения на запись в ваш текущий рабочий каталог. Это именно то сообщение об ошибке, которое я получаю в этом случае (очень жаль, что не стоит включать полезную информацию, такую ​​как «отказано в разрешении»)

Если у вас есть доступ к strace, вы можете подтвердить это следующим образом:

$ strace -f sqlite3 ex1.db 'create table tb11(one varchar(10), two smallint);' 2>&1 | grep ex1.db
execve("/usr/bin/sqlite3", ["sqlite3", "ex1.db", "create table tb11(one varchar(10"...], [/* 58 vars */]) = 0
access("ex1.db", F_OK)                  = -1 ENOENT (No such file or directory)
stat("/tmp/d/ex1.db", 0x7fffb18fc690)   = -1 ENOENT (No such file or directory)
open("/tmp/d/ex1.db", O_RDWR|O_CREAT, 0644) = -1 EACCES (Permission denied)
open("/tmp/d/ex1.db", O_RDONLY)         = -1 ENOENT (No such file or directory)
write(2, "Error: unable to open database \""..., 70Error: unable to open database "ex1.db": unable to open database file

Обратите внимание, что результат open равен EACCESS (Permission denied).

0 голосов
/ 25 февраля 2014

Проверьте, есть ли у вас права доступа к каталогу, в котором вы запускаете эту команду.У вас должны быть права на запись, когда sqlite создаст файл для вашей базы данных.

Если у вас нет прав, попробуйте изменить разрешения с помощью команды chmod.Вы также можете перейти в каталог, где у вашего профиля пользователя есть права на запись.

Я попытался создать базу данных в / usr / bin, но это не удалось, поскольку у него не было разрешений на запись для моего профиля.Но когда я перешел в свой домашний каталог ($ HOME), я смог создать базу данных.

0 голосов
/ 30 ноября 2011

Проверьте права на запись и убедитесь, что вы внимательно следите за каждым шагом в руководстве:

http://www.sqlite.org/sqlite.html

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