Hola usuario de nuestra página web, encontramos la respuesta a lo que estabas buscando, has scroll y la obtendrás aquí.
Solución:
Del resultado de apt list --installed
no tiene un servidor PostgreSQL 10 realmente instalado.
El nombre del paquete es exactamente postgresql-10
: https://packages.ubuntu.com/bionic/database/postgresql-10. Deberías instalar ese paquete.
La falta de error de systemctl
y el hecho de que un postgresql
el servicio existe son confusos: es porque postgresql
es un servicio “paraguas” que lanza cada instancia de postgresql instalada y configurada. En su caso, actualmente no tiene ninguna instancia de este tipo, pero está bien en lo que respecta a postgresql
el servicio está preocupado. En el caso más general, es posible que tenga varias versiones diferentes de PostgreSQL ejecutándose simultáneamente (de diferentes paquetes postgresql-
), y también varias instancias de la misma versión (del mismo paquete).
Sugeriría verificar sus instancias de PostgreSQL con pg_lsclusters
en vez de systemctl
. Ver también pg_ctlcluster
para controlarlos.
Solo usa
service [email protected] start
y funciona. No sé exactamente por qué sucede esto solo en 18.04 (verifiqué 17.10 y no sucede allí), pero el ‘paraguas’ parece incapaz de enumerar las instancias instaladas.
HTH,
13/05/2018
DESCARGO DE RESPONSABILIDAD: Esto es para postgresql 10 y ubuntu 18.04, y puede que funcione o no para otras versiones. PD: Si ha estado alterando la configuración de idioma últimamente, dígame, porque puede haber una conexión con la falla de postgres.
Ayer estaba teniendo exactamente el mismo problema, y nadie en todo Internet podía ayudarme, así que me volví deshonesto … ¡Y funcionó!
En primer lugar, si tiene alguna base de datos con datos que le interese conservar, no puedo ayudarlo; tendrá que encontrar una forma de hacer una copia de seguridad de todos sus datos.
Ahora, en los pasos reales (esto es exactamente lo que hice, los pasos entre [ ]
puedes saltarte):
sudo apt remove –purge postgres *
[ sudo apt remove –purge pg* ]sudo apt autoremove
sudo apt autoclean
sudo apto limpio
[ sudo find / -name “*postgres*” -type f -delete ] -> esto puede eliminar cualquier copia de seguridad
Ahora asegúrate de tener esta línea en /etc/apt/sources.list
deb http://cz.archive.ubuntu.com/ubuntu bionic main
Si no lo hace, simplemente agréguelo … Continuemos:
actualización de sudo apt
actualización de sudo apt
sudo apt install -y postgresql-10 postgresql-contrib postgresql-client
[ sudo apt install -y postgresql-server pgadmin3 ] -> esto es posible que necesite para metasploit
[ sudo reboot ]
Ahora debe verificar si se crearon los directorios necesarios:/etc/postgresql/10/main
-> archivos de configuración/usr/lib/postgresql/10/bin
-> scripts y ejecutables/var/run/postgresql
-> archivos temporales/var/lib/postgresql/10/main
-> carpetas
Si alguno de esos no existe, no puedo ayudarte. También debe asegurarse de que el usuario postgres
existe Vamos a continuar:
sudo chown root / usr / lib / postgresql -R
sudo chgrp root / usr / lib / postgresql -R
sudo chmod 755 / usr / lib / postgresql -R
Ahora ve a editar /etc/environment
y agregue esto a la RUTA: /usr/lib/postgresql/10/bin
sudo chown postgres / etc / postgresql -R
sudo chgrp postgres / etc / postgresql -R
sudo chmod 700 / etc / postgresql -Rsudo 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.logsudo 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
Crear /var/lib/postgresql/.bashrc
y escríbele esto
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)[ 33[01;32m][email protected]h[ 33[00m]:[ 33[01;34m]w[ 33[00m]$ '
else
PS1='$debian_chroot:+($debian_chroot)[email protected]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
Y luego:
sudo chown postgresql /var/lib/postgresql/.bashrc
sudo chgrp postgresql /var/lib/postgresql/.bashrc
sudo chmod 664 /var/lib/postgresql/.bashrc
[ sudo reboot ]
Y ahora para la parte final:
sudo su
su postgres
Para iniciar postgresql:
pg_ctl start -D / etc / postgresql / 10 / main -l /etc/postgresql/10/main/postgresql.log
Para terminarlo:
matar $ (gato /var/run/postgresql/10-main.pid)
Configuración básica (ingrese al postgresql
Interprete):
psql
du+
-> lista de usuarios de postgresqll
-> lista de bases de datos postgresqlcreateuser
y dropuser
-> autoexplicativocreatedb
y dropdb
-> autoexplicativo
EXTRA: METASPLOIT
Si alguien que lee esto necesita postgresql para metasploit, puede seguir este enlace (es para 16.04 pero funciona bien en 18.04), sin embargo, hay un error: en algún momento, deberá ejecutar esto:rvm --default use ruby-$RUBY_VERSION@metasploit-framework gem pristine --all
En lugar de lo sugerido:rvm --default use ruby-$RUByVERSION@metasploit-framework
Además, si tiene problemas con el instalación del paquete ruby parte, este comando puede salvarle la vida: gem pristine --all