Puede ejecutar PostgreSQL sin privilegios de root creando una nueva instancia (que PostgreSQL llama un "clúster") e iniciándola.
No puede usar los scripts de inicio de Ubuntu, herramientas de envoltura como pg_ctlcluster
, etc si haces esto. Debe utilizar únicamente las herramientas propias de PostgreSQL.
Para crear la nueva instancia de PostgreSQL con el superusuario igual a su nombre de usuario, el directorio de datos en su directorio de inicio y la autenticación md5 habilitada de manera predeterminada, use:
initdb -D $HOME/my_postgres -A md5 -U $USER
Ajuste como desee; ver initdb --help
.
A continuación, deberá editar postgresql.conf
para cambiar el port
a uno no predeterminado, ya que su sistema probablemente ejecuta su propio postgres en el puerto predeterminado 5432. (Si desea limitar el acceso estrictamente a usted, puede configurar listen_addresses = ''
y unix_socket_directories = /home/myuser/postgres_socket
o lo que sea. Pero es más sencillo usar un puerto diferente).
Para iniciarlo:
pg_ctl -D $HOME/my_postgres -w start
Para conectarse a él, especifique el puerto que eligió:
psql -p 5434 ...
(Si cambiaste unix_socket_directories
también querrá especificar la ruta que proporcionó, como -h /home/myuser/postgres_socket
.)
Para hacer psql
etc. conéctese a su postgres de forma predeterminada, edite su ~/.bashrc
para agregar algo como
export PGPORT=5434
pero tenga en cuenta que eso también afectará el puerto predeterminado para las conexiones a otros hosts.
Para detenerlo:
pg_ctl -D $HOME/my_postgres -w stop
pero también puede simplemente apagarlo sin detenerlo, no le importa y se recuperará de manera segura cuando lo vuelva a iniciar.
Para iniciarlo automáticamente cuando inicia sesión cuando está configurado en su directorio de inicio, debe usar las funciones de ejecución en el inicio de su entorno de escritorio. Varían según el entorno y la versión, por lo que no puedo dar detalles aquí; es diferente para GNOME 3, Unity (ubuntu), KDE, XFCE, etc.
Tenga en cuenta que este enfoque todavía usa el sistema paquetes para PostgreSQL. Esto es importante porque si desinstala (digamos) PostgreSQL 9.4 e instala 9.6, su copia en su directorio principal dejará de funcionar. Si lo desea completamente independiente de los paquetes del sistema, como probablemente lo haga si no controla el sistema, debe compilar PostgreSQL desde el código fuente o usar el instalador binario para instalar dentro de su directorio de inicio.