PostgreSQL Cookbook: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
Line 54: Line 54:
== Restarting the server ==
== Restarting the server ==


* Run '''pgAdmin III'''.  
* Run '''pgAdmin 4'''.  
* Connect to the local server.
* Connect to the local server.
* '''Tools''' > '''Server Configuration''' > '''pg_hba.conf''' or '''postgresql.conf''' > '''File''' > '''Reload Server'''
* '''Tools''' > '''Server Configuration''' > '''pg_hba.conf''' or '''postgresql.conf''' > '''File''' > '''Reload Server'''

Revision as of 17:22, 28 November 2020

Installation

Mac OS

Use homebrew from the command line: [1]

$ brew install postgresql

Install the pyscopg library for PostgreSQL support within Python: [2]

$ pip install psycopg2

PostgreSQL GUIs

Troubleshooting

Compile errors installing psycopg2 involving missing -lssl libraries: [3]

Make sure openssl is installed with brew install openssl.

Then link against brew's openssl (from within a virtual environment):

(venv) $ env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2

Windows

Search for the "PostgreSQL Windows". There is an installer available. It's pretty straightforward.

Server properties

Confirm that the server is running

$ pg_ctl status

Creating a database

Use the pgAdmin III program.

  • First create a Login Role for the database. Set the database's owner to the new (or existing) login role:
    Object browser > Server Groups > [server] > Login Roles > (right click) > New Login Role
  • Create the database
    Object browser > Server Groups > [server] > Databases > (right click) > New Database

Restarting the server

  • Run pgAdmin 4.
  • Connect to the local server.
  • Tools > Server Configuration > pg_hba.conf or postgresql.conf > File > Reload Server

Restarting manually

I am including the information below because it's the most commonly documented method. It did not work reliably on Windows, however. It seems like not every process would be killed, and that some of them would still be attached to port 5432. The service could not be restarted after the server was stopped.

The PostgreSQL service name includes the version number.

With powershell run with Administrator privileges, navigate to the bin\ directory in the PostgreSQL installation directory.

> .\wp_ctl.exe restart -w -D "c:\ProgramData\PostgreSQL\9.4\data\"
  • -w Wait for the server to stop and start.
  • -D Path to data directory. The version number may be different depending on the installation.[4]

This appears to stop the PostgreSQL service & requires the service to be manually restarted.

  • Start Menu > Services (command line: services.msc)
  • Check the status of the postgresql service. (Its name will end with the version number.)

Allowing remote access for pgAdmin III

  • Make sure that the PostgreSQL port (default 5432) is open on the host machine.
  • Edit data\pg_hba.conf in the PosgreSQL installation directory to give the remote machine access. (Requires the PostgreSQL server to be restarted.)[5] [6]
  • Confirm that that the PostgreSQL service is running in the Services control panel.
  • ipv6 address must be added to pg_hba.conf on Windows. Append /128 to open the entire subnet of local addresses.

Querying a database from the command line

To start an interactive session:

$ psql -U [USER_NAME] [DATABASE_NAME]

Importing data

From the command line use psql:

$ psql -U [USER_NAME] [DATABASE_NAME] < [EXPORTED_DATA_FILE_NAME].sql

Notes

  1. Getting started with PostgreSQL on Mac OS - Codementor Community
  2. Psycopg Installation - Psycopg Documentation
  3. Error installing psycopg2 library not found for -lssl - StackOverflow
  4. pg_ctl (PostgreSQL documentation)
  5. The pg_hba.conf File PostgreSQL documentation
  6. IP range in pg_hba.conf? (PostgreSQL forums)
    There is an explanation of CIDR masks at the end of the thread.