Создание базы данных PostgreSQL

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

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

$ createdb mydb

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

Если вы видите сообщение, подобное:

createdb: command not found

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

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

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

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

createdb: 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 "myuser" does not exist

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

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

createdb: error: database creation failed: ERROR:  permission denied to create database

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

В качестве объяснения того, почему это работает: имена пользователей PostgreSQL отделены от учетных записей пользователей операционной системы. Когда вы подключаетесь к базе данных, вы можете выбрать имя пользователя PostgreSQL для подключения; если вы этого не сделаете, по умолчанию будет использоваться то же имя, что и у вашей текущей учетной записи операционной системы. Так получилось, что всегда будет учетная запись пользователя PostgreSQL, имя которой совпадает с именем пользователя операционной системы, запустившего сервер, и также бывает, что этот пользователь всегда имеет разрешение на создание баз данных. Вместо того, чтобы входить в систему как этот пользователь, вы также можете везде указать опцию -U, чтобы выбрать имя пользователя PostgreSQL для подключения.

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

$ createdb

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

$ dropdb mydb

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


Читайте также:

Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Хэш-таблица: разрешение коллизий

Нормальные формы, пример нормализации в базе данных