Paul Makepeace ;-)

Database Access

Both MySQL and PostgreSQL are provided here.

In order to use them please provide:

You're welcome to more than one.

Web access

For immeasurably more convenience in most cases, I've set up web interfaces to both using the excellent phpMyAdmin and phpPgAdmin front-ends.

Security

Database access is a serious business. There is no external access to the database whatsoever: In order that all database authentication and subsequent web traffic is fully encrypted, and even access to the database is restricted the front-ends are active on the localhost interface only. What this means is that in order to access them from afar you'll need to create an SSH tunnel into mythix.

Something like, (8080 is any local port you like) ssh -N -L 8080:127.0.0.1:80 username@mythix.realprogrammers.com (which will simply sit there til you ^C. -f will background it, removal of -N will provide a shell too. Read more on SSH tunnelling.) At that point you will be able to use http://localhost:8080/phppgadmin/index.php and http://localhost:8080/mysqladmin/index.php.

MySQL and PG differences

PostgreSQL is quite different from MySQL and indeed the two web interfaces can reflect this. Do not be alarmed. The command line interfaces (i.e. mysql and psql) are scarily different. Further, PostgreSQL is more database-centric whereas MySQL is more user-centric. For PG I recommend fully reading Bruce Momjian's PostgreSQL: Introduction and Concepts. I found it a quick read online.

Access to PostgreSQL

For reasons a bit technical to go into here, in order to use PostgreSQL here you must explicitly connect to localhost, not just rely on the machine being local (i.e. through sockets). For example in Perl, your DSN might look like dbi:Pg:dbname=db_name;host=127.0.0.1.

If you're using the command line interface you must do this as well unless your shell username is the same as the database you're connecting to (not the username of the owner of any database you're connecting.) A typical command line might look like psql -h localhost -U db_username db_name

Enjoy!