Postgres createdb и создание базы данных не работают в Ubuntu 18.04
У меня есть проект Django, который я пытаюсь установить на Ubuntu и создаю новую базу данных в PostgreSQL 14.
Пользователем root по умолчанию, как обычно, является Postgres.
Затем я попробовал создать нового пользователя с моим именем пользователя Linux "abc" со всеми привилегиями: "SUPERUSER", "CREATEDB" и т.д. Все работало нормально, и новый пользователь был создан.
И мне было предложено создать базу данных с таким же именем "abc".
Итак, я сделал
CREATE DATABASE abc;
в оболочке psql, это не дает ошибки и ничего не дает.
Я попробовал
createdb abc
илиcreatdb
в терминале bash, но это тоже ничего не дало.
Решение из этого ответа SO link у меня вообще не работает.
Я также пробовал это, что ничего не дало.
В конечном итоге я просто хочу иметь возможность создать базу данных для моего проекта Django, что у меня не получается, и я понятия не имею, что я делаю неправильно.
Вот команда, которую я использую для установки db проекта Django:
# create new user who will be the db owner
# on Ubuntu, root user is postgres
createuser -P <new_user_name> -U <root_user>
# if you're having issues logging in
# see https://stackoverflow.com/a/18664239/3187043
# create new db with the above created user as its owner
createdb -E UTF8 --lc-collate=en_IN.UTF-8 --lc-ctype=en_IN.UTF-8 -T template0 -O <new_user_name> -U <root_user> <new_db_name>
# this doesn't get created
# copy the contents to your new db
psql -U <new_user_name> <new_db_name> < ~/Downloads/backup-ocrdb-2018-09-13_1214.psql
#fails with no output
# Log in to psql console using
psql -U <new_user_name> <new_db_name>
#unable to login because db has not been created
Зайдите в командную строку linux и введите:
$su - postgres
Затем введите имя пользователя для прогресса:
После этого введите пароль:
psql После этого появится командная строка progressql:
postgres = #
Для просмотра всех созданных баз данных используйте эту команду, она покажет все базы данных:
postgres = # \l
Для создания новой базы данных используйте эту команду:
postgres = # CREATE DATABASE databaseName;
Для подключения к конкретной базе данных используйте эту команду:
postgres = # \c databaseName;
Для предоставления прав на эту подключенную базу данных определенному пользователю используйте эту команду:
postgres = # GRANT permissions ON DATABASE dbname TO username;