Recursos de fin de semana (II)

Con un poco de retraso llegan los recursos de fin de semana para los que no dejan de trabajar ni domingos:

Que les sirva ;)

Client does not support authentication protocol requested by server

Siempre que hago una nueva instalación de MySQL, y entro por phpMyAdmin para administrar mi base de datos me encuentro con el siguiente error:

#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Esto sucede porque a partir de la versión 4.1.1 MySQL usa un protocolo de autenticación basada en un algoritmo de encriptación de passwords y ya no se puede entrar como estabamos acostumbrados los usuarios antiguos.

Podemos solucionar este problema fácilmente con los siguiente pasos (Para el ejemplo estoy usando MySQL 4.1.12a-nt y Windows XP con Service Pack 2):

  1. Entramos por consola a la carpeta de MySQL y escribimos: mysql -u root -p, donde root es el usuario principal de MySQL nos pedirá que ingresemos la contraseña, en mi caso es 'mysql'.

  2. Ahora vamos a "actualizar" la contraseña de root, para eso escribimos:

    SQL:
    SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('mysql');
    donde root es el usuario con el cual quiero usar la antigua forma de autenticación, localhost es el nombre de mi servidor de base de datos y 'pass' es la contraseña que quiero usar (Si tenemos mas usuarios, debemos hacer lo mismo por cada usuario; es decir si tuviera algun usuario llamado 'valois' tendría que escribir SET PASSWORD FOR 'valois'@'localhost' = OLD_PASSWORD('PasswordDeValois'); y lo mismo para otros usuarios).

    Inicio de sesión en MySQL y actualización de contraseña

  3. Listo :)

Eso es todo, despues de eso podremos entrar sin problemas a administrar nuestra base de datos; sea por consola, phpMyAdmin o cualquier herramienta, cualquier duda ya saben donde molestarme.

Como salir de beta al estilo Microsoft, WTF!

Comentábamos con Alex como Microsoft terminaba la fase beta de Windows Custom Domains y al cargar la página gracias a mi conexión lenta vi unas letras rojitas que decían "Beta", las cuales desaparecieron misteriosamente después, mi curiosidad me llevó a ver el código fuente y encontré esto:

Como salir de Beta

Si asi de fácil terminan las betas, estamos seguros que pronto también estará listo IE7 ;).

Internet Explorer 7 Beta 3

Acaba de salir una beta más de Internet Explorer, esta vez trae algunas novedades entre ellas: nuevos íconos, posibilidad de ordenar las pestañas, autentificación FTP y otras mas.

Stefano Demiliani ha bautizado a esta última beta como IE-Zilla, pero creo que eso todos ya lo sabíamos :P, supongo que cuando salga la versión final yo ya me habré jubilado. Si quieres probarlo te dejo los enlaces:

Recursos de fin de semana

Les dejo algunos enlaces interesantes para poder leer este fin de semana:

PHPMailer con GMail

En un hilo publicado en forosdelweb, en el que un usuario desea utilizar el servidor SMTP de GMail para enviar correos usando PHPMailer, hacen referencia a esta interesante entrada que sirve justamente para lo antes mencionado.

Hice algunos cambios en class.phpmailer.php (línea 537) para separar correctamente el host y el puerto cuando se tienen cosas como $mail->Host = 'ssl://smtp.gmail.com:465';, estos cambios se hicieron debido a que GMail usa SSL/TLS como protocolo de comunicación/autenticación.

php:
# Original
if(strstr($hosts[$index], ":"))
        list($host, $port) = explode(":", $hosts[$index]);
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}
php:
# Modificación
if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))
{
        $host = $match[1];
        $port = $match[3];
}
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}

Página de prueba:

php:
<?php

require_once 'class.phpmailer.php';

$mail = new PHPMailer ();

$mail -> From = "foo@gmail.com";
$mail -> FromName = "Foo";
$mail -> AddAddress ("bar@domain.com");
$mail -> Subject = "Test";
$mail -> Body = "<h3>From GMail!</h3>";
$mail -> IsHTML (true);

$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'foo@gmail.com';
$mail->Password = '******';

if(!$mail->Send()) {
        echo 'Error: ' . $mail->ErrorInfo;
}
else {
{       echo 'Mail enviado!'.
}

?>
 

Nota: Para hacerlo funcionar es necesario que la extensión OpenSSL esté habilitada.

Archivos relacionados