2015-09-09 3 views
1

В настоящее время я запускаю Linux Mint 17.2 XFCE и в настоящее время занимаюсь курсом Udacity Intro to Relational Databases. Несколько дней назад я установил PostGreSQL в качестве части программы. Часть курса включала загрузку виртуальной машины и подключение к ней через Vagrant для работы в Linux, но я уже использую linux, поэтому вместо этого я просто загрузил Vagrant, чтобы получить доступ к файлу forum.sql, который поставляется с ним, и часть одного из упражнений.Получение 'psql: FATAL: database "forum.sql" не существует "Ошибка

Однако всякий раз, когда я пытаюсь запустить forum.sql с командой

psql forum.sql 

все, что я получаю ошибку

psql: FATAL: database "forum.sql" does not exist 

. Несмотря на это, я явно в правильном каталоге. Когда я набираю 'ls' в каталоге vagrant/forum, он явно показывает forum.sql.

Что я делаю неправильно?

+0

http://www.postgresql.org/docs/9.4/static/app-psql.html что вы пытаетесь достичь? вы читали документацию psql? вам нужно использовать 'psql -d databaseName -U dbUsername -d host' –

+0

Я пытаюсь запустить файл в моем терминале через psql. –

+0

Пожалуйста, проверьте [этот ответ] (http://stackoverflow.com/a/12085561/3961156) в документе, который я включил выше, вы можете найти все опции –

ответ

1

PostgreSQL не работает с файлами. Когда вы запускаете «psql», он подключается к службе по сети.

К нему подключается служба базы данных, а psql жалуется, что имя базы данных, которую вы ему сказали, не существует.

Вы можете подумать, что хотите оценить содержимое файла, и вы можете сделать это , но сначала вам нужно подключиться к базе данных. Если в прошлом вы запустили «createdb», вы создали базу данных, и это должно быть первым параметром в вашей строке после «psql», а не некоторым именем файла. Если вы не укажете имя базы данных, она будет подключаться к базе данных с тем же именем, что и имя пользователя linux, если оно было создано тоже.

Если вы можете подключиться так, как вам следует, и вы проверили его, вы можете попросить psql прочитать в файле, который у вас есть, «-f», а затем имя вашего файла перед именем базы данных.

Один из них, возможно, правильно:

$ psql -f forum.sql databasename 
$ psql -f forum.sql 
+0

Большое вам спасибо, это дало мне большую часть информации, которую мне нужно было выяснить. Очень важно, извините за тупой вопрос. –

Смежные вопросы