05/13/2018
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это для postgresql 10 и Ubuntu 18.04, и может работать или не работать для других версий. PS: Если вы в последнее время вмешивались в языковые настройки, пожалуйста, скажите мне, потому что может быть связь с ошибкой postgres
Вчера у меня возникла точно такая же проблема, и никто во всем Интернете не мог мне помочь, поэтому я стал мошенником ... И это сработало!
Прежде всего, если у вас есть какая-либо база данных с данными, которые вы хотите сохранить, я не могу вам помочь; вам нужно будет найти способ сделать резервную копию всех ваших данных.
Теперь перейдем к реальным шагам (это именно то, что я сделал, шаги между [ ]
вы можете пропустить):
sudo apt удалить --purge postgres *
[sudo apt remove --purge pg *]
sudo apt autoremove
sudo apt autoclean
sudo apt clean
[sudo find / -name "* postgres *" -type f -delete] -> это может удалить любые резервные копии
Теперь убедитесь, что у вас есть эта строка в /etc/apt/sources.list
deb http://cz.archive.ubuntu.com/ubuntu bionic main
Если нет, просто добавьте это ... Давай продолжим:
Обновление sudo
Обновление sudo
sudo apt install -y postgresql-10 postgresql-contrib postgresql-клиент
[sudo apt install -y postgresql-server pgadmin3] -> это вам может понадобиться для metasploit
[перезагрузка sudo]
Теперь вы должны проверить, были ли созданы необходимые каталоги:
/etc/postgresql/10/main
-> файлы конфигурации
/usr/lib/postgresql/10/bin
-> скрипты и исполняемые файлы
/var/run/postgresql
-> временные файлы
/var/lib/postgresql/10/main
-> папки
Если что-то из этого не существует, я не могу вам помочь. Вы также должны убедиться, что пользователь postgres
существует. Давайте продолжим:
sudo chown root /usr /lib /postgresql -R
корень sudo chgrp /usr /lib /postgresql -R
sudo chmod 755 /usr /lib /postgresql -R
Теперь перейдите в файл /etc/environment
и добавьте его в PATH: /usr/lib/postgresql/10/bin
Судо Чоун postgres /etc /postgresql -R
sudo chgrp postgres /etc /postgresql -R
sudo chmod 700 /etc /postgresql -R
sudo echo ""> /etc/postgresql/10/main/postgresql.log
sudo chown postgresql /etc/postgresql/10/main/postgresql.log
sudo chgrp postgresql /etc/postgresql/10/main/postgresql.log
sudo chmod 700 /etc/postgresql/10/main/postgresql.log
sudo mkdir /var/run/postgresql/10-main.pg_stat_tmp
sudo chown postgres /var/run/postgresql/10-main.pg_stat_tmp -R
sudo chgrp postgres /var/run/postgresql/10-main.pg_stat_tmp -R
sudo chmod 700 /var/run/postgresql/10-main.pg_stat_tmp -R
Создайте /var/lib/postgresql/.bashrc
и запишите это
shopt -s histappend
HISTSIZE=1000
HISTFILESIZE=2000
shopt -s checkwinsize
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
source /etc/environment
А потом:
sudo chown postgresql /var/lib/postgresql/.bashrc
sudo chgrp postgresql /var/lib/postgresql/.bashrc
sudo chmod 664 /var/lib/postgresql/.bashrc
[перезагрузка sudo]
А теперь финальная часть:
судо су
su postgresql
Для запуска postgresql:
pg_ctl start -D /etc /postgresql /10 /main -l /etc/postgresql/10/main/postgresql.log
Чтобы закончить это:
kill $(cat /var/run/postgresql/10-main.pid)
Базовая конфигурация (введите интерпретатор postgresql
):
PSQL
\du+
-> список пользователей postgresql
\l
-> список баз данных postgresql
createuser
и dropuser
-> говорят сами за себя
createdb
и dropdb
-> говорят сами за себя
ЭКСТРА: МЕТАСПЛОЙТ
Если кому-то, читающему это, нужен postgresql для metasploit, вы можете перейти по этой ссылке (она для 16.04, но отлично работает в 18.04), однако есть ошибка: в какой-то момент вам нужно будет запустить это:
rvm --default use ruby-${RUBY_VERSION}@metasploit-framework gem pristine --all
вместо предложенного:
rvm --default use ruby-${RUByVERSION}@metasploit-framework
Кроме того, если у вас возникнут проблемы с установочной частью пакета ruby , эта команда может спасти вам жизнь: gem pristine --all