1.3. Создание базы данных#

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

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

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

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

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

$ createdb mydb

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

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

createdb: command not found

то значит Tantor SE не был корректно установлен. Либо СУБД не была установлена вообще, либо путь поиска команд оболочки не включает соответствующий каталог . Попробуйте вместо этого вызвать команду, указав абсолютный путь:

$ /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 "joe" does not exist

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

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

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

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

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

$ createdb

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

$ dropdb mydb

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

Более подробно о командах createdb и dropdb можно прочитать в разделах createdb и dropdb соответственно.



[1] Почему это работает: Имена пользователей Tantor SE отделены от учетных записей пользователей операционной системы. При подключении к базе данных вы можете выбрать, под каким именем пользователя Tantor SE подключиться; если вы этого не сделаете, по умолчанию будет использоваться то же имя, что и у вашей текущей учетной записи операционной системы. Получается, что всегда существует учетная запись пользователя Tantor SE, с тем же именем, что и у пользователя операционной системы, который запустил сервер, и также этот пользователь всегда имеет разрешение на создание баз данных. Вместо входа в систему от имени этого пользователя вы также можете везде указать опцию -U, чтобы выбрать имя пользователя Tantor SE для подключения.