Перший тест, за допомогою якого буде видно, що ви можете отримати доступ до сервера баз даних - це спроба створити базу даних. Запущений сервер PostgreSQL може управляти безліччю баз даних. Зазвичай, для кожного проекту або кожного користувача використовується окрема база даних.
Можливо, що адміністратор вашої машини вже створив базу даних для вас. Він мав би сказати вам ім'я вашої бази даних. В цьому випадку ви можете пропустити цю секцію і перейти до наступної.
Для створення нової бази даних, в цьому прикладі називається mydb. ви можете використовувати наступну команду:
Якщо команда завершилася без будь-яких повідомлень, то даний крок був пройдений успішно і ви можете пропустити написане далі до кінця цієї секції.
Якщо ви отримаєте щось схоже на:
createdb: command not found
то це означає, що продукт PostgreSQL ні правильно встановлений. Або було встановлено не всі або шлях пошуку в вашому командному інтерпретаторі ні встановлено відповідним чином. Спробуйте викликати цю команду, використовуючи повний шлях:
Повний шлях на вашій машині може бути іншим. Зв'яжіться з вашим адміністратором або перевірте інструкції по установці, щоб виправити ситуацію.
Інша повідомлення, яке ви можете отримати:
createdb: could not connect to database postgres: could not connect to server: No such file or directory 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 postgres: FATAL: user "joe" does not exist
де замість joe згадується ваше ім'я реєстрації. Таке повідомлення з'являється якщо адміністратор не створив для вас користувача в PostgreSQL. (Користувач PostgreSQL - це не користувач операційної системи). Якщо ви є адміністратором, дивіться інформацію про створення користувача в Chapter 20. Вам знадобиться зареєструватися в операційній системі під ім'ям того користувача, з під якого працює PostgreSQL (зазвичай postgres), щоб створити першого користувача в СУБД. Для команди створення бази, ви також можете вказати в PostgreSQL ім'я користувача, яке відрізняється від вашого поточного імені користувача в операційній системі; в цьому випадку вам необхідно задати ім'я користувача PostgreSQL за допомогою опції -U або установки змінної оточення PGUSER.
Якщо потрібний користувач існує, але у нього немає прав, необхідних для створення бази даних, ви побачите наступне повідомлення:
createdb: database creation failed: ERROR: permission denied to create database
Ви можете також створювати бази даних з будь-якими іншими іменами. PostgreSQL дозволяє вам створювати будь-яку кількість баз даних на одному сервері. Імена баз даних повинні складатися з букв і цифр (спочатку завжди повинна бути буква) і бути не більше 63 байт довжиною. Досить зручно створювати базу даних з таким же ім'ям як у користувача. Багато інструменти за замовчуванням вважають, що ім'я бази даних саме таке, так що ви зможете не натискати зайві кнопки. Щоб створити таку однойменну з ім'ям користувача базу даних, просто наберіть:
Якщо ви не хочете використовувати вашу базу даних в майбутньому, ви можете видалити її. Наприклад, якщо ви є власником (засновником) бази даних mydb. ви можете знищити її, використовуючи наступну команду:
(Для цієї команди ви повинні обов'язково поставити ім'я бази даних, вона не буде вважати, що ім'я бази даних - це ім'я поточного користувача). Дана команда фізично видалить всі файли, пов'язані з вказаною базою даних так, що їх не можна буде відновити, так що виконуйте цю операцію з великою обережністю.
Більше інформації про командах createdb і dropdb можна знайти відповідно в createdb і dropdb.
Як пояснення як це працює: Імена користувачів в PostgreSQL існують окремо від імен користувачів в операційній системі. Коли ви підключаєтеся до будь-якої базі даних, ви можете вибрати для підключення будь-яке ім'я користувача PostgreSQL; якщо ви це не зробите, то за замовчуванням буде встановлено таке-ж ім'я, яке у вас в операційній системі. Однак, завжди існує користувач PostgreSQL. який має таке ж ім'я як і в операційній системі і від імені якого здійснюється запуск сервера, а крім того цей користувач завжди має права на створення баз даних. Замість того, щоб реєструватися під цим користувачем, ви можете також задати опцію -U і в ній вказати ім'я того користувача PostgreSQL. яке ви хочете використовувати при підключенні.