Getting Started with PostgreSQL and Python +++++++++++++++++++++++++++++++++++++++++++++ :Posted: 2007-10-25 12:54 :Tags: PostgreSQL Install it (and the Python drivers like this):: $ sudo apt-get install postgresql-8.1 psycopg2 Or you can install psycopg2 from source like this:: $ apt-get install gcc-2.95 libpq-dev $ export CC=/usr/bin/gcc-2.95 $ easy_install psycopg2 Setup a user and database (you need to be the ``postgres`` user):: $ su postgres $ createdb --encoding=UTF8 yourdatabase You can check the encoding of your database like this:: $ psql -l List of databases Name | Owner | Encoding --------------+----------+---------- postgres | postgres | UTF8 template0 | postgres | UTF8 template1 | postgres | UTF8 yourdatabase | postgres | UTF8 (4 rows) Now create a user:: $ createuser james Answering no to the questions sets up the user with limited rights, if you want a user with lots of rights, choose yes. Give the user a password (still as ``postgres``):: $ psql yourdatabase yourdatabase=# alter user james password 'password'; ALTER ROLE yourdatabase=# \q If you are signed into Debian as ``james`` you should now be able to connect as yourself:: $ psql yourdatabase If you aren't ``james`` you need to do a bit more work. Finish being the ``postgres`` user if you haven't already and edit your ``/etc/postgresql/8.1/main/pg_hba.conf`` to give your new user access to the database. You'll need to read the full docs for all the details but adding a line like this will work to give ``james`` access only locally:: # TYPE DATABASE USER CIDR-ADDRESS METHOD local yourdatabase james md5 Restart PostgreSQL:: $ /etc/init.d/postgresql-8.1 restart That's it. You should now be able to connect after being asked for your password. Here is some more detailed info if you want to set up other permissions: Setting up: http://glasnost.beeznest.org/articles/218 User administration: http://www.davidpashley.com/articles/postgresql-user-administration.html