Первый тест, чтобы увидеть, можете ли вы получить доступ к серверу базы данных, — это попытаться создать базу данных. Работающий сервер PostgreSQL может управлять многими базами данных. Обычно для каждого проекта или для каждого пользователя используется отдельная база данных.

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

Чтобы создать новую базу данных, в этом примере с именем mydb, вы используете следующую команду:

$ createdb mydb

Если это не дает ответа, этот шаг был выполнен успешно, и вы можете пропустить оставшуюся часть этого раздела.

Если вы видите сообщение похожее на:

createdb: command not found

то PostgreSQL не был установлен должным образом. Либо он вообще не был установлен, либо путь поиска вашей оболочки не включал его. Вместо этого попробуйте вызвать команду с абсолютным путем:

$ /usr/local/pgsql/bin/createdb mydb

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

Другой ответ может быть таким:

reatedb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that socket?

Это означает, что сервер не был запущен, или он не слушает, где createdbожидает связаться с ним. Опять же, проверьте инструкции по установке или обратитесь к администратору.

Другой ответ может быть таким:

createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL:  role "joe" does not exist

где упоминается ваше собственное имя для входа. Это произойдет, если администратор не создал для вас учетную запись пользователя PostgreSQL . ( Учетные записи пользователей PostgreSQL отличаются от учетных записей пользователей операционной системы.) Если вы являетесь администратором, обратитесь к Главе 22 за помощью по созданию учетных записей. Вам нужно будет стать пользователем операционной системы, под которой был установлен PostgreSQL (обычно postgres), чтобы создать первую учетную запись пользователя. Также может быть, что вам было назначено имя пользователя PostgreSQL , отличное от имени пользователя вашей операционной системы; в этом случае вам нужно использовать -Uпереключатель или установить PGUSERпеременную среды, чтобы указать ваше имя пользователя PostgreSQL .

Если у вас есть учетная запись пользователя, но у нее нет прав, необходимых для создания базы данных, вы увидите следующее:

createdb: ошибка: сбой при создании базы данных: ОШИБКА: отказано в разрешении на создание базы данных

Не каждый пользователь имеет право создавать новые базы данных. Если PostgreSQL отказывается создавать для вас базы данных, администратор сайта должен предоставить вам разрешение на создание баз данных. Обратитесь к администратору сайта, если это произойдет. Если вы установили PostgreSQL самостоятельно, вам следует войти в систему для целей этого руководства под учетной записью пользователя, под которой вы запустили сервер. [1]

Вы также можете создавать базы данных с другими именами. PostgreSQL позволяет создавать любое количество баз данных на заданном сайте. Имена баз данных должны начинаться с буквы алфавита и иметь длину не более 63 байтов. Удобным выбором является создание базы данных с тем же именем, что и ваше текущее имя пользователя. Многие инструменты предполагают, что это имя базы данных используется по умолчанию, поэтому это может сэкономить вам время при наборе текста. Чтобы создать эту базу данных, просто введите:

$ createdb

Если вы больше не хотите использовать свою базу данных, вы можете удалить ее. Например, если вы являетесь владельцем (создателем) базы данных mydb, вы можете уничтожить ее с помощью следующей команды:

$ dropdb mydb

(Для этой команды имя базы данных по умолчанию не совпадает с именем учетной записи пользователя. Вам всегда нужно указать его.) Это действие физически удаляет все файлы, связанные с базой данных, и его нельзя отменить, поэтому это следует делать только с большой долей вероятности. предусмотрительности.