PostgreSQL Cookbook: Difference between revisions
| Line 20: | Line 20: | ||
* [https://www.pgadmin.org/ pgAdmin] | * [https://www.pgadmin.org/ pgAdmin] | ||
* [https://eggerapps.at/postico/ Postico] | * [https://eggerapps.at/postico/ Postico] | ||
==== Troubleshooting ==== | |||
'''Compile errors installing `psycopg2` involving missing `-lssl` libraries:''' <ref>[https://stackoverflow.com/questions/26288042/error-installing-psycopg2-library-not-found-for-lssl Error installing psycopg2 library not found for -lssl] - StackOverflow</ref> | |||
Make sure openssl is installed with `brew install openssl`. | |||
Then link against brew's openssl (from within a virtual environment): | |||
<pre> | |||
(venv) $ env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2 | |||
</pre> | |||
=== Windows === | === Windows === | ||
Revision as of 13:55, 19 March 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.
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 III.
- Connect to the local server.
- Tools > Server Configuration > pg_hba.conf or postgresql.conf > File > Reload Server
Restarting manually
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\"
-wWait for the server to stop and start.-DPath 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.confin 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.confon Windows. Append/128to 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
- ↑ Getting started with PostgreSQL on Mac OS - Codementor Community
- ↑ Psycopg Installation - Psycopg Documentation
- ↑ Error installing psycopg2 library not found for -lssl - StackOverflow
- ↑ pg_ctl (PostgreSQL documentation)
- ↑ The pg_hba.conf File PostgreSQL documentation
- ↑ IP range in pg_hba.conf? (PostgreSQL forums)
There is an explanation of CIDR masks at the end of the thread.