Cómo activar el log de MySQL

mysql

Si dispones una versión de MySQL superior a la 5.1.29, puedes activar el log de toda la actividad de la base de datos de la siguiente manera (atención, necesitas ser root):

  1. Edita el fichero /etc/my.cnf
  2. Añade una línea al final del fichero que contenga: general_log_file=/ruta/a/tu/fichero.log

Reinicia el servicio de MySQL y cuando se haya levantado de nuevo, entra en MySQL y ejecuta la sentencia:

SET global general_log = 1;

Ya está, ahora puedes ver qué está haciendo MySQL en tiempo real con tan sólo escribir:

tail -f /ruta/a/tu/fichero.log

Según la cantidad de tráfico que tengas en tu servidor, el fichero puede llegar a ocupar mucho espacio, así que recuerda echarle un vistazo de vez en cuando.

Usando SQLite

SQLite
SQLite

¿Qué es SQLite?

SQLite es un pequeño – pero genial – Sistema Gestor de Bases de Datos, como MySQL, Oracle, dBase o FileMaker. Las principales ventajas respecto a otros sistemas de gestión de bases de datos son:

  • Es un proyecto de dominio público.
  • Tamaño muy reducido, menos de 300Kb, que lo hace perfecto para ser utilizado junto con otras aplicaciones.
  • Las bases de datos se guardan en forma de ficheros, por lo que es posible trasladar sin problemas una base de datos (o fichero) a cualquier dispositivo que tenga instalado sqlite.
  • Es multiplataforma.
  • Estabilidad. Despues de más de 10 años de desarrollo, muchas aplicaciones como Firefox, OpenOffice o incluso Android confían en esta herramienta para gestionar sus datos.

Instalación

Instalarlo es muy sencillo, puedes descargarlo de su página oficial o bien ejecutar el siguiente comando en cualquier distribución basada en Debian:

pedro@pedro:~$ sudo apt-get install sqlite

para instalar la versión 2.x o bien

pedro@pedro:~$ sudo apt-get install sqlite3

para instalar la versión 3.x.

Voy a publicar algunos comandos que me han resultado útiles para preparar una base de datos a la que accede una pequeña aplicación en hecha en Mono.

Importar ficheros CSV a SQLite

Supongamos que tenemos el siguiente archivo:

pedro@pedro:~/prueba$ cat tabla.csv
Pedro;Carrasco;http://www.pedrocarrasco.org/
Juan;Gomez;http://www.paginawebdejuan.com/
Federico;Garcia;http://www.paginadefederico.com/

Con el siguiente comando crearemos un fichero llamado personas.db3, que contendrá la base datos que queremos importar:

pedro@pedro:~/prueba$ sqlite3 personas.db3
SQLite version 3.7.2
Enter «.help» for instructions
Enter SQL statements terminated with a «;»

La base de datos destino debe tener la misma cantidad y tipo de datos que el CSV, así que creamos la tabla personas adecuada a la información que queremos importar:

sqlite> create table personas ( nombre varchar(32), apellidos varchar(32), web varchar(32) );

Como nuestro archivo CSV separa los campos mediante el caracter punto y coma (;), lo indicaremos en sqlite de la siguiente manera:

sqlite> .separator ;

Ahora sólo falta importar el archivo:

sqlite> .import tabla.csv personas

Ya está, ahora podemos hacer un SELECT, para comprobar que todo está bien:

sqlite> select * from personas;
Pedro|Carrasco|http://www.pedrocarrasco.org/
Juan|Gomez|http://www.paginawebdejuan.com/
Federico|Garcia|http://www.paginadefederico.com/

Convertir de sqlite3 a sqlite2

La manera más sencilla y rápida de convertir una base de datos de la versión 3 de sqlite a la versión 2 es la siguiente:

pedro@pedro:~/prueba$ echo .dump | sqlite3 personas.db3 | sqlite personas.db