Para aprender más sobre la configuración de servidores en GNU/Linux, creo que es una buena idea continuar con el servidor de Bases de Datos MySQL. Tarde o temprano, cuando trabajas de informático o de administrador de sistemas te toca instalar y configurar un servidor de bases de datos.

Instalarlo es tan sencillo como utilizar nuestro gestor de paquetes favorito o descargarlo de la página del proyecto MySQL. Por ejemplo, con apt sería:

sudo apt-get install mysql-server

El archivo de configuración principal del servidor se encuentra por defecto en /etc/mysql/my.cnf. Para arrancarlo, detenerlo o reiniciarlo hay que utilizar el siguiente comando:

sudo /etc/init.d/mysql [start | stop | restart]

Aunque la configuración y utilización de dicho servidor puede hacerse con la omnipotente consola o shell, hay algunas herramientas gráficas que nos pueden venir muy bien. También se pueden descargar desde la página del proyecto MySQL o utilizando apt con el siguiente comando:

sudo apt-get install mysql-admin mysql-query-browser

Ahora podemos administrar nuestro servidor tanto de forma gráfica como cambiando el archivo de configuración. Recordad que para poder modificar el archivo de configuración /etc/mysql/my.cnf con la aplicación mysql-admin debemos utilizar la orden sudo para arrancarla ya que el propietario de dicho archivo de configuración es el usuario root, como se muestra a continuación:

root@localhost:~# ls -l /etc/mysql/my.cnf
-rw-r–r– 1 root root 3839 2009-11-09 19:05 /etc/mysql/my.cnf

mysql-admin

Estableciendo UTF-8 como default character set

¿Algunas recomendaciones extras?

  • Modificar el parámetro de “default character set” para que sea UTF-8. Esto se puede hacer añadiendo las siguiente líneas al archivo de configuración:

    default-character-set=utf8
    default-collation=utf8_general_ci

  • Permitir conexiones remotas al servidor cambiando la línea que pone
    bind-address        = 127.0.0.1
    por esta otra:
    bind-address        = 0.0.0.0
  • Controlar el número de conexiones máximas y el timeout de las mismas. Esto es importante porque podemos tener alguna aplicación que se quede colgada y que no cierre bien la conexión con el servidor. Si esto pasa muchas veces podemos tener conexiones muertas al servidor que no se cerrarían nunca. Habría que reiniciar el servidor para que aceptase nuevas conexiones. Se puede solventar este problema haciendo que el servidor MySQL cierre las conexiones automáticamente cuando ha pasado un cierto tiempo. Esto se consigue añadiendo estas líneas al archivo de configuración:#Número máximo de conexiones
    max_connections        = 1000
    #Timeout en segundos (1 hora)
    wait_timeout=3600

Os pego la sección [mysqld] del archivo de configuración por si alguno quiere hacer un copy&paste rápido:

[mysqld]

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp

bind-address        = 0.0.0.0

key_buffer        = 16M
max_allowed_packet    = 16M
thread_stack=192
thread_cache_size       = 8

myisam-recover         = BACKUP

max_connections        = 1000
wait_timeout=3600

query_cache_limit    = 1M
query_cache_size        = 16M

default-character-set=utf8
default-collation=utf8_general_ci

Hay muchos más parámetros de configuración con los que podéis jugar hasta encontrar la configuración que mejor satisface vuestras necesidades, este es tan solo un ejemplo. Espero que os sea de utilidad.

Hasta pronto