решаемые
Моя главная проблема была:
➜ ~ createb 'test'
createdb: could not connect to database template1: could not connect to server: No server file or directory
Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
эта проблема была решена просто:
➜ ~ postgres -D / usr / local / var / postgres
, который вызвал каталог базы данных ...
2019-05-06 14:20:37.367 EDT [41854] LOG: listening on IPv6 address "::1", port 5432
2019-05-06 14:20:37.367 EDT [41854] LOG: listening on IPv4 address "127.0.0.1", port 5432
2019-05-06 14:20:37.367 EDT [41854] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
2019-05-06 14:20:37.384 EDT [41854] LOG: database system is ready to accept connections
продолжайте работать и откройте новую вкладку на моем терминале:
➜ ~ createb 'test'
➜ ~ psql 'test'
psql (11.2)
Type "help" for help.
test=#
Что-то еще пригодится во время моей отладки:
удалить старые файлы базы данных (это опасно)
➜ ~ rm -rf / usr / local / var / postgres
, затем
➜ ~ initdb / usr / local / var / postgres
initdb
не используется для создания "новой базы данных"
Как указано в Руководстве , вам необходимо создать «кластер» или «каталог данных», в котором будут храниться базы данных, созданные с помощью createdb
Цитата из руководства:
Прежде чем вы сможете что-либо сделать, вы должны инициализировать область хранения базы данных на диске. Мы называем это кластером базы данных. (В стандарте SQL используется термин кластер каталога.) Кластер баз данных - это набор баз данных, который управляется одним экземпляром работающего сервера баз данных
[...]
В терминах файловой системы кластер базы данных - это один каталог, в котором будут храниться все данные. Мы называем это каталогом данных или областью данных
Вкратце: initdb
создает необходимую структуру каталогов на жестком диске, чтобы иметь возможность создавать и управлять базами данных.
Это необходимая часть процесса установки сервера Postgres.