Установка PostgreSQL и `createb` с помощью терминала - PullRequest
0 голосов
/ 06 мая 2019

После установки PostgreSQL из terminal с Homebrew ...

➜ ~ brew link postgresql

Warning: Already linked: /usr/local/Cellar/postgresql/11.2_1: 3,186 files, 35.3MB

To relink: brew unlink postgresql && brew link postgresql

➜ ~ brew servicesрестарт postgresql

Successfully stopped postgresql (label: homebrew.mxcl.postgresql)

Successfully started postgresql (label: homebrew.mxcl.postgresql)

➜ ~ созданный '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"?

Я хотел бы иметь возможность работать строго из терминала и не зависеть от использования графического интерфейса PSequel...

Спасибо,

1 Ответ

0 голосов
/ 06 мая 2019

решаемые

Моя главная проблема была:

➜ ~ 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.

...