Several application that form part of the Hannibal systemstack rely on a MySQL-database for data storage. You could of course install a RDBMS per server or per virtual server, however we prefer to install a centralized storage backend that is available via TCP/IP. This documentation describes how to install a MySQL-server on Debian Etch.
Documentation on howto make the MySQL-database available in an environment that depends on the Apache webserver and PHP is available at the Hannibal webserver section.
Debian Etch contains a package for MySQL-server version 5 (at the moment 5.0.32).
apt-get install mysql-server-5.0
As the package does not set credentials for the MySQL root-account we'll do that right now:
mysqladmin -u root -p password your_root_passwd
By default MySQL only listens on localhost. You have to make it available for the outside yourself. Edit /etc/mysql/my.cnf:
... bind-address = your_ip_address ...
Restart the database server:
/etc/init.d/mysql restart
We usually create a separate account per database administrator. This allows for securing the MySQL-root account credentials (only use them in case of an emergency). Let's create a new database administrator 'handb'. In our example this user is allowed to connect to the MySQL-server from all hosts.
mysql -u root -p -e "grant all on *.* to handb@'%' identified by 'your_password' with grant option" mysql -u root -p -e "flush privileges"
Please don't ever use your database administrator accounts for individual applications. Just create a database-account per application and/or per application role. This strategy allows for only granting just enough permissions…