Запустить экземпляр PostgreSQL локально

Я не смог решить эту проблему. Теперь я использую TexMaker (v 2.2.1), у него уже есть функция синхронизации. Спасибо.

3
задан 14 May 2012 в 22:10

18 ответов

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный сценарий установки перед запуском с виртуальной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы сохранить его от автоматического запуска на порту 5432: отредактируйте файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 25 May 2018 в 11:26

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 25 July 2018 в 18:56

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 31 July 2018 в 13:21

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 2 August 2018 в 01:03

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 4 August 2018 в 16:35

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 6 August 2018 в 01:15

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 7 August 2018 в 18:40

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 10 August 2018 в 07:19

Итак, первое, что нужно остановить сервер. Это делается следующим образом:

sudo /etc/init.d/postgresql stop

Это было достаточно легко. Таким образом, остальные - разрешения, поэтому, очевидно, chmod является решением на шаге 3 ниже. (Newbies google chmod для некоторой проницательности). Вы должны разрешить доступ для записи ко всем пользователям в «каталог сокетов». По-видимому, это просто проблема Debian; они модифицировали исходный код postgresql в своем репо; «каталог сокетов» в неизмененном источнике постгрейса - «/ tmp», который по умолчанию имеет права на бесплатную запись. Однако дистрибутив Debian изменил это на «/ var / run / postgresql», который предназначен только для не-владельцев. Поэтому вам просто нужно сделать это для записи. Вот полный скрипт установки pre-tutorial из девственной 12.04 Ubuntu VM.

sudo apt-get install postgresql
sudo /etc/init.d/postgresql stop
sudo chmod a+w /var/run/postgresql
echo 'PATH=$PATH:/usr/lib/postgresql/9.1/bin' >> .bashrc
. .bashrc

sudo apt-get install leiningen

mkdir clojure
cd clojure
lein new shouter
cd shouter
gedit project.clj
  change to https://devcenter.heroku.com/articles/clojure-web-application

initdb pg
postgres -D pg &
createdb shouter
export DATABASE_URL=postgresql://localhost:5432/shouter
lein repl

Чтобы он не запускался автоматически на порт 5432: отредактировал файл /etc/postgresql/9.1/main/start.conf.

3
ответ дан 15 August 2018 в 19:21

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

[d1 ] Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})
[d7 ] Если вы изменили порт по умолчанию 5433, вы должны указать его там, например "//localhost:5555/shouter".

В качестве примечания JDBC-драйвер не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 25 May 2018 в 11:26
  • 1
    Если это действительно так, я думаю, что это лучший ответ, но я переместил все на mongodb некоторое время назад, поэтому вряд ли не удастся проверить это в ближайшем будущем. Если кто-то еще может ручаться за это, я буду отмечать это как правильно. – Dax Fohl 22 October 2014 в 07:29
  • 2
    Этот параметр называется unix_socket_directories, поскольку PostgreSQL 9.3 (теперь можно указать несколько каталогов). – user686249 15 July 2015 в 21:06
  • 3
    спасибо, обновлено. также местоположение конфигурации postgresql.conf теперь находится в каталоге данных – user7610 14 January 2016 в 01:43

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 25 July 2018 в 18:56

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 31 July 2018 в 13:21

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 2 August 2018 в 01:03

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 4 August 2018 в 16:35

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 6 August 2018 в 01:15

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 7 August 2018 в 18:40

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 10 August 2018 в 07:19

Предполагая, что у вас нет доступа администратора к компьютеру, решение должно запустить Postgres с новым конфигурационным файлом и сообщить ему создать сокет unix в каталоге, в котором у вас уже есть разрешение на запись.

Инициализируйте новый каталог данных, здесь названный db.

initdb -D db

Измените файл конфигурации db/postgresql.conf. Найдите строку, которая указывает unix_socket_directories и измените ее, например, на текущий каталог (это будет каталог данных с именем db, а не каталог, из которого вы используете postgres)

unix_socket_directories='.'

Вы можете теперь запускаем Postgres с

postgres -D db

и создаем первую базу данных, предоставляя абсолютный путь к файлу unis-сокета в опции -h

createdb -h `pwd`/. customers

Вы также можете изменить порт по умолчанию, либо в конфигурации, либо путем запуска postgres с чем-то вроде -p 5555

. Описание соединения в вашей программе будет тогда, например,

(def psql
  {:subprotocol "postgresql"
   :subname "//localhost/shouter"})

Если вы изменили порт по умолчанию 5433, вы должны указать его там, что-то вроде "//localhost:5555/shouter".

Как примечание, драйвер JDBC не поддерживает подключение к базе данных через сокеты Unix, только через сокеты TCP / IP.

источник: http://www.postgresql.org/docs/9.4/static/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE

2
ответ дан 15 August 2018 в 19:21
  • 1
    Если это действительно так, я думаю, что это лучший ответ, но я переместил все на mongodb некоторое время назад, поэтому вряд ли не удастся проверить это в ближайшем будущем. Если кто-то еще может ручаться за это, я буду отмечать это как правильно. – Dax Fohl 22 October 2014 в 07:29
  • 2
    Этот параметр называется unix_socket_directories, поскольку PostgreSQL 9.3 (теперь можно указать несколько каталогов). – user686249 15 July 2015 в 21:06
  • 3
    спасибо, обновлено. также местоположение конфигурации postgresql.conf теперь находится в каталоге данных – user7610 14 January 2016 в 01:43

Другие вопросы по тегам:

Похожие вопросы: