Editing
PostgreSQL Cookbook
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[Category:PostgreSQL]] [[Category:Django]] [[Category:Python]] [[Category:Web Development]] == Installation == === Mac OS === Use homebrew from the command line: <ref>[https://www.codementor.io/@engineerapart/getting-started-with-postgresql-on-mac-osx-are8jcopb Getting started with PostgreSQL on Mac OS] - Codementor Community</ref> <pre> $ brew install postgresql </pre> Install the pyscopg library for PostgreSQL support within Python: <ref>[https://www.psycopg.org/docs/install.html Psycopg Installation] - Psycopg Documentation</ref> <pre> $ pip install psycopg2 </pre> ==== PostgreSQL GUIs ==== * [https://www.pgadmin.org/ pgAdmin] * [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 === Search for the "PostgreSQL Windows". There is an installer available. It's pretty straightforward. == Server properties == === Confirm that the server is running === <pre> $ pg_ctl status </pre> == 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:<br />'''Object browser''' > '''Server Groups''' > ''[server]'' > '''Login Roles''' > ''(right click)'' > '''New Login Role''' * Create the database<br />'''Object browser''' > '''Server Groups''' > ''[server]'' > '''Databases''' > ''(right click)'' > '''New Database''' == Starting and stopping the server == === Starting the server === <pre> $ pg_ctl -l $PGDATA/server.log start </pre> This assumes that `PGDATA` has been defined in the shell profile, e.g. <pre> export PGDATA=`/usr/local/var/postgres` </pre> === Stopping the server === <pre> $ pg_ctl stop -m fast </pre> === 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 ==== <pre> $ pg_ctl reload </pre> <div class="alert alert-warning">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.</div> The PostgreSQL service name includes the version number. With powershell run with Administrator privileges, navigate to the `bin\` directory in the PostgreSQL installation directory. <syntaxhighlight lang="powershell"> > .\wp_ctl.exe restart -w -D "c:\ProgramData\PostgreSQL\9.4\data\" </syntaxhighlight> * `-w` Wait for the server to stop and start. * `-D` Path to data directory. The version number may be different depending on the installation.<ref>[http://www.postgresql.org/docs/9.4/static/app-pg-ctl.html pg_ctl] (PostgreSQL documentation)</ref> 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 4 == * 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.)<ref>[http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html The pg_hba.conf File] PostgreSQL documentation</ref> <ref>[http://postgresql.nabble.com/IP-range-in-pg-hba-conf-td4973998.html IP range in pg_hba.conf?] (PostgreSQL forums)<br />There is an explanation of CIDR masks at the end of the thread.</ref> * 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: <syntaxhighlight lang="bash"> $ psql -U [USER_NAME] [DATABASE_NAME] </syntaxhighlight> == Importing data == From the command line use `psql`: <syntaxhighlight lang="bash"> $ psql -U [USER_NAME] [DATABASE_NAME] < [EXPORTED_DATA_FILE_NAME].sql </syntaxhighlight> == Notes == <references />
Summary:
Please note that all contributions to Littledamien Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Littledamien Wiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information