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.

Laravel 5

LARAVEL

Hace tan sólo unos días que la versión 5 de Laravel ha llegado. Tras hacer algunas pruebas, he encontrado que, a pesar de ser uno de los frameworks mejor documentados, hay algunas cosas que no están explicadas. Aquí van un par de ellas:

Problema: He instalado Laravel y sólo veo el árbol de directorios/archivos.

Solución: Si usas Apache, lo más probable sea que necesites el fichero .htaccess en la raíz del DocumentRoot.

RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]

si ese no funciona, prueba con este

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond /public/%{REQUEST_URI} -d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /public/$1/

RewriteBase /
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /public/$1

RewriteBase /
RewriteRule ^(/)?$ /public/index.php [L]

Problema: veo una página en blanco, pero no aparece la vista de welcome de Laravel.

Solución: Si estás trabajando en local (en un entorno de desarrollo) lo más probable es que sea un problema de permisos. La solución rápida es abrir un terminal y escribir:

cd /path/de/mi/proyecto/laravel/
chmod 777 * -R

Atención! Si estás en un entorno de producción, eso es una barbaridad! Lee la documentación de Laravel para conocer qué permisos son los adecuados.

Otra recomendación es configurar laravel en modo debug, para que muestre el error en tu navegador, seguro que te da alguna pista útil. Para hacerlo, hay que modificar el fichero config/app.php y en la linea que pone ‘debug’ escribir:

 'debug' => true,

Problema: No tengo tabla de usuarios en Laravel!

Solución: Sólo necesitas lanzar el comando migrate de artisan

Ahora Laravel tiene preinstalado un sistema de registro y login de usuarios. Es muy cómodo porque después de una instalación ya tienes disponible un template de ejemplo en http://tudominio/home con un bonito formulario hecho con bootstrap:

sreenshot-laravel5
Screenshot Laravel 5

Pero al intentar registrar un usuario o hacer login, aparece el siguiente error:

QueryException in Connection.php line 614:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.users' doesn't exist (SQL: select count(*) as aggregate from `users` where `email` = my@email.com )

Para arreglarlo, sólo es necesario lanzar el artisan migrate:

cd /path/de/mi/proyecto/laravel/
php artisan migrate

Y creará una hermosa tabla de usuarios. Si prefieres crear la tabla a mano (no recomendado) aquí la tienes para MySQL.

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

--
-- Indexes for table `users`
--
ALTER TABLE `users`
 ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `users_email_unique` (`email`);

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
 MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;

Suerte!