25 de marzo de 2009

Consejos sobre el Servicio de base de datos MySQL

El software MySQL® proporciona un servidor de base de datos SQL (Structured Query Language) muy rápido, multi-threaded, multi usuario y robusto. El servidor MySQL está diseñado para entornos de producción críticos, con alta carga de trabajo así como para integrarse en software para ser distribuido. Es ideal para sitios web dinámicos.

Es indispensable que lea la documentación oficial de MySQL en español (en línea). También puede descargarse para ser consultada sin conexión a Internet.

El objetivo de este artículo es mostrar información básica y que es indispensable conocer sobre MySQL para que el servicio sea más seguro.

El archivo de configuración principal de MySQL es "/etc/mysql/my.cnf".

Por default los logs no vienen activados, por lo que es recomendable activarse, esto se hace descomentando la línea "log = /var/log/mysql/mysql.log" de "/etc/mysql/my.cnf"

Por Default, solo se permite conexiones al Servicio MySQL de manera local. Para permitir conexiones remotas hay que modificar la directiva "bind-address" del archivo "/etc/mysql/my.cnf" indicándole que escuche por la IP de interfaz de red deseada de tal manera que quede de la siguiente manera:

bind-address = 192.168.0.1

Sustituya "192.168.0.1" por la IP de su servidor.

Por default, el usuario root (el administrador) de MySQL no tiene asignado ningún password. Para asignarle un password hay que hacer ejecutar el siguiente comando:

$ mysqladmin -u root password su_password

Otra manera de hacerlo es directamente desde el cliente mysql:

$ mysql
> use mysql;
> update user set Password=PASSWORD('nuevo_password') where user='root';
> flush privileges;

11 de marzo de 2009

Recuperar password de root


Se puede recuperar el password de root de diferentes maneras. A continuación se explican algunas de ellas.

Opción 1
- Arrancar con un livecd. Knoppix es una buena opción
- Montar la partición donde se encuentra instalado el sistema:
# mount -o rw /dev/sda1 /mnt/sda1
- Editar el archivo "/etc/shadow" de la partición montada y borrar el segundo campo de la linea del usuario root. Quedaría algo así:
root::xxxxx:0:xxxxx:x:::
- Reiniciar y arrancar con debian
- Loguearse como root (no pedirá password)
- Asignar nuevo password:
# passwd root

Opción 2
- Arrancar con un livecd. Knoppix es una buena opción
- Montar la partición donde se encuentra instalado el sistema:
# mount -o rw /dev/sda1 /mnt/sda1
- Hacer un chroot de la partición:
# chroot /mnt/sda1
- Asignar nuevo password a root:
# passwd root