lunes, 31 de marzo de 2008

MySQL, cuando el cliente o el servidor están obsoletos

O no llego, o me paso.

O no posteo en semanas, o me repito en un día. Pero hay días que te encuentras con cosas curiosas que acabas encontrando la solución, y no voy a dejar de postear por eso mismo...

Aquí va la segunda entrada de hoy.

Intentando conectar desde un cliente MySQL (5.0x) a un servidor (3.x, aunque esto sirve para versiones anteriores a 4.1.1), me devolvía este error:

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

La gracia es que no podía actualizar el cliente porque está en una máquina poco estable, obsoleta pero que de momento aguanta (y aquí nos guiamos muchas veces por eso de "si funciona, no lo toques"), así que he tenido que buscar otra solución. Googleando por ahí, he visto que el problema es debido a la diferencia de versiones, y que a partir de la 4.1.1, las contraseñas se encriptan de otra manera, por lo que no se puede validar. La idea es que, para los usuarios que se tienen que conectar entre estas dos máquinas, vamos a poner el formato antiguo de la contraseña. Y lo hacemos de la siguiente manera:

root@Tuxxxy:~# /var/log/mysql# mysql -p -h localhost -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.32-Debian_7etch5-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> set password for 'user'@'host' = OLD_PASSWORD('mysql');
Query OK, 0 rows affected (0.00 sec)

donde password es la contraseña de ese usuario, user el usuario y host el servidor remoto desde el que te conectas.
Después un

mysql> flush privileges;
y arreando, que es gerundio!

Windows Vista y módem USB Huawei E220 de Vodafone

Hace unas semanas, entró en casa mi enano. Mi enano no es más que mi nuevo portátil, y aunque no sea nada del otro mundo, para mí está muy bien (es un Acer Aspire 5920...)

El caso es que el enano traía un intruso, también conocido como Windows Vista. Mi primer impulso fue formatear: "formateo, meto Windows XP y una partición con una Debian, y arreando". Ja. Anda que no me las prometía yo felices. Al intentar formatear, el disco de Windows XP me decía que no había medios particionables. "Que no qué!!?? Será ~%k#ñ&$!!" es lo único que me salía de la boquita.

El caso es que decidí dejar Vista, aunque me doliera, y mira, eso que tenía ya avanzado para cuando se estandarizara. Debo decir que cada vez me gusta menos, y que la interfaz me recuerda mucho a un escritorio KDE bien tuneado. Pero bueno, poco a poco voy trabajando con él. Cada paso me cuesta horrores. El primer problema fue la VPN de SonicWall, que no había manera de instalarla. Un conflicto con una librería llamada ntdll.dll me traía de cabeza. La solución fue fácil: dejé apartado el tema durante la semana santa y al probarlo después, se instaló sin problema. Fui instalando otros programas necesarios para trabajar, hasta que me encontré con otro problemilla, que es con el que estoy ahora.

En el trabajo tenemos un módem 3G para conectarnos durante las guardias. Es de Vodafone, y es un Huawei E220 que, extrañamente, no funciona con Windows Vista. Después de mucho buscar en foros y que no diera resultado nada, caí (gracias Pablo) en pasarme por la web de Vodafone, para ver si decía alguna cosa. Y sí! Por fin encontré una solución...

Id a la página de Vodafone para ver la solución... Básicamente hay que actualizar el firmware del módem, y aunque la operación es sencilla, el proceso es delicado, porque si por cualquier motivo se queda colgado, el módem se va a pastar...

Bueno, yo lo dejo ahí. Allá cada uno con lo que hace...

miércoles, 26 de marzo de 2008

Postfix y trivial-rewrite

Estando instalando un servidor backend para un sistema de correo postfix (con autentificación MySQl), me he encontrado con el siguiente problema.

Mar 26 13:43:19 srvpilot postfix/trivial-rewrite[5727]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Mar 26 13:43:19 srvpilot postfix/trivial-rewrite[5727]: fatal: mysql:/etc/postfix/mysql_virtual_alias_maps.cf(0,lock|fold_fix): table lookup problem
Mar 26 13:43:20 srvpilot postfix/smtpd[5718]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Mar 26 13:43:20 srvpilot postfix/smtpd[5718]: warning: problem talking to service rewrite: Success
Mar 26 13:43:20 srvpilot postfix/master[5699]: warning: process /usr/lib/postfix/trivial-rewrite pid 5727 exit status 1
Mar 26 13:43:20 srvpilot postfix/master[5699]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Mar 26 13:43:20 srvpilot postfix/cleanup[5725]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Mar 26 13:43:20 srvpilot postfix/cleanup[5725]: warning: problem talking to service rewrite: Connection reset by peer


Y así mil veces... o más. Bueno, el caso es que googleando por ahí, he visto dos posibles soluciones al problema.

Una era comprobar que el usuario MySQL con el que has configurado los accesos, tiene los permisos correctos sobre la tabla necesaria. Yo lo he comprobado y todo OK.

La segunda solución me ha valido a mí. En la propia configuración del Postfix, en el main.cf, tú configuras el UID y el GID con los que va a trabajar el postfix, y que tienen que coincidir con los del usuario de sistema, que está en /etc/passwd. Lo he cambiado, he reiniciado el postfix y el error ha desaparecido. Bueno, tengo otro, pero no tiene nada que ver. Si encuentro lo que es, ya lo postearé por aquí.

miércoles, 19 de marzo de 2008

Arracando Lighttpd... si se deja

El problemilla al que hago referencia en el post anterior, del que no conozco el origen ni lo voy a intentar averiguar ahora, es el siguiente.

El sistema: un servidor Sparc con una Gentoo, dos IPs diferentes y dos servidores web, lighhtp y apache, escuchando en cada IP por el puerto 80. Por motivos del aplicativo (vamos, que va como el culo) he tenido que reiniciar el lighttpd, pero me ha devuelto el siguiente error:

Starting lighttpd: 2008-03-19 0:48:00: (network.c.300) can't bind to port: 80 Address already in use

Después de comprobar que ni se me había levantado nada (el servidor web... que yo no tengo nada para levantar) ni se había hecho ningún cambio en la modificación de ambos servidores web... ni que nada escuchaba en el puerto 80 de la IP que correspondía al lighhtpd, he encontrado en un foro remoto (y tan remoto, estaba en alemán!!!) otra manera de arrancarlo. Lo bueno es que ha funcionado... e insisto, no tengo ni idea de cómo lo ha hecho, pero el caso es que lo ha hecho, ¿no?

La solución "magistral" (si se le puede llamar de esa manera) es la siguiente:
lighttpd -f /etc/lighttpd/lighttpd.conf

Si miráis las opciones del binario correspondiente, la opción -f corresponde con el archivo de configuración con el que quieres que arranque. Y ese es el que tenemos por defecto. Así que ni idea de lo que ha pasado, pero al menos me puedo ir a dormir tranquilamente.

Buenas noches

Afrontando problemas

Una pequeña gran verdad que he visto posteada en un foro. Estoy todavía buscando la solución a un problema que está presentando un servidor, y he leído esta gran verdad
for Windows problems, reboot
for Linux problems, be root

Sólo puedo decir una cosa.
Amén.

domingo, 16 de marzo de 2008

Ampliando discos en VMware

Siento haber tardado tanto en volver a postear, la verdad es que he tenido unas semanas muy liadas y bastante duras. Y tampoco se me ocurría nada lo suficientemente decente como para postear, así que para hacerlo mal, ni lo he intentado.

Pero bueno, tengo algo bueno. Algo que he hecho por primera vez esta semana: ampliar un disco en una máquina virtual montada sobre un servidor VMware ESX 3.01 (si mal no recuerdo). Cuando hablo de ampliar quiero decir eso, ampliar, hacer mayor; creo que el procedimiento (al menos uno de sus pasos) no es válido si lo queremos hacer es disminuir el tamaño del disco.

** Antes de nada, haced un backup del disco duro **

La operación tiene dos partes, y no presenta mucha dificultad.

Primera parte: redimensionamos el disco lógicamente (por decirlo de alguna manera)

- Apagamos la máquina virtual.
- Entramos por SSH al servidor ESX
- Navegamos hasta el directorio donde se encuentra el archivo de configuración de la máquina (nombre_máquina.vmdk, no nombre_maquina-flat.vmdk)
- Ejecutamos el comando de eXtensión del disco:
vmkfstools -X nuevo_tamaño(m,g) nombre_máquina.vmdk
o en mi caso
vmkfstools -X 20G Web2.vmd
Esto tarda un par de segundos en ejecutarse, y ya tenemos hecho la redimensión del disco.

Segunda parte: redimensionar el disco físicamente

Por lo que he estado viendo, hay diferentes maneras de hacerlo, pero principalmente me he quedado con dos, por parecerme las más cómodas.

La primera manera es con una herramienta propia de Windows. Arracamos la máquina de nuevo, y ejecutamos una herramienta propia de Windows. Desde la página de Microsoft pone cómo hay que hacerlo

http://support.microsoft.com/kb/325590

Esta opción no es recomendable si se trata de extender la unidad donde se encuentra el sistema operativo y, sobre todo, el archivo de paginación de Windows. Es recomendable para extender unidades básicas de datos.

La segunda opción se puede utilizar cuando trabajamos sobre la unidad donde se encuentra el sistema operativo.

Lo primero será descargarnos una ISO y arrancaremos con ella. Esta ISO tiene una aplicación, gparted, que es el editor de particiones de Gnome, para la creación, eliminación, redimensionamiento, inspección y copia del espacio de una unidad.

http://sourceforge.net/project/showfiles.php?group_id=115843&package_id=173828

Arracancamos con ella y nos aseguramos de entrar en el modo gráfico. Una vez dentro, con la propia herramienta gparted (sale abierta por defecto), seleccionamos el disco que queramos redimensionar, y veremos que aparece un espacio no particionado, coincidiendo con el espacio que hemos añadido.

Seleccionamos el disco duro y se nos activará la opción de Resized. Pulsamos ahí. En la pantalla que se abre, simplemente desplazamos la barra hasta que marque el espacio que queremos que tenga el disco (hasta el final de la barra si queremos que sea todo, menos si queremos menos espacio). Aceptamos, y el sistema nos pedirá confirmación para los cambios. Que sí, que
lo haga.

Una vez acabe, reiniciamos y entramos en el sistema en Windows. Al arrancar, nos pedirá hacer un checkdisk. Que lo haga. Sin problemas

Una vez entremos, podremos ver que el disco ya tiene la nueva capacidad.

Si lo que queremos es redimensionar un sistema linux, tendréis que hacerlo de la segunda manera. No creo que dé mucho problema, aunque tampoco lo he intentado, pero por lo que he visto se hace de la misma manera.