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

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

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

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

$ createdb mydb

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

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

createdb: command not found

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

$ /usr/local/qhb/bin/createdb mydb

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

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

createdb: could not connect to database qhb: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

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

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

createdb: could not connect to database qhb: FATAL:  role "joe" does not exist

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

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

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

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

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

$ createdb

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

$ dropdb mydb

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

Больше информации по командам createdb и dropdb можно найти в соответствующих разделах.

1

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