Las ideas no duran mucho, hay que hacer algo con ellas

juliorestrepo.wordpress.com desde el año 2008

MySQL Server – Instalacion y Configuracion Paso a Paso (método Julio Restrepo)

MySQL juliorestrepo.svg

Este artículo se diferencia de cualquier otro existente en internet por una sola cuestión:

Es una buena práctica separar el filesystem que aloja el sistema operativo del filesystem que aloja las bases de datos.

Tiene muchas ventajas ya que, por ejemplo:

  • Podrás medir, de manera independiente, las transacciones de disco generadas por las bases de datos y las generadas por el sistema operativo.
  • Podrás reinstalar fácilmente tu sistema operativo sin preocuparte, ya que tus bases de datos se encuentran en un disco distinto.
  • Podrías también parametrizar snapshots del filesystem de la base de datos, facilitando la labor de respaldo de la información.
  • Si te quedas sin espacio en el filesystem de la base de datos, simplemente puedes clonar tu disco lleno hacia un disco de mayor capacidad… sin complicaciones.
  • Si se presenta un cuello de botella por gran cantidad de transacciones de disco en el filesystem de la base de datos, podrás implementar o expandir un arreglo RAID de discos para balancear carga de una manera muy simple.

En conclusión, una implementación modular simplifica la administración y facilita la escalabilidad.

Por tal motivo implemento un servidor con 2 unidades de disco: una para el sistema operativo y otra para alojar las bases de datos

El procedimiento que sigo es el siguiente:

PASO 1: Instalo el sistema operativo (suelo usar UBUNTU SERVER) en el disco uno.

PASO 2: Luego de instalado el sistema operativo, configuro la red, actualizo los repositorios e instalo la utilidad GPARTED para particionar el disco duro dos.

El particionamiento del disco dos lo realizo con GPARTED en 2 fases:

  1. Creo una tabla de particiones GPT (no MSDOS)
  2. Creo una partición dentro de dicho disco usando GPARTED, con el fin de que queden alineados los sectores físicos y lógicos; adicionalmente, asigno un LABEL (Etiqueta) a la nueva partición para facilitar su reconocimiento y administración. Dado que Ubuntu Server se implementa SIN interface gráfica (solo consola) se hace necesario el uso de SSH y una aplicación como XMING (en Windows) o ssh -x (en Linux) para visualizar la GUI de GPARTED

PASO 3: Luego de particionado, ejecuto el comando BLKID para identificar el UUID del disco

PASO 4: Teniendo el UUID, edito el archivo /etc/fstab para asignarle a dicho UUID el punto de montaje /var/lib/mysql

PASO 5: Creo el directorio /var/lib/mysql con el comando MKDIR (Ojo! aún NO he instalado el servidor de MySQL)

PASO 6: Ahora ejecuto el comando mount /var/lib/mysql

PASO 7: Verifico que el montaje haya sido exitoso con el comando mount

Quedaría algo similar a esto:

/var/lib# cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/vda1 during installation
UUID=0ecdf548-f2c8-4103-bb74-b8bd7c940838 /               ext4    noatime,nodiratime,errors=remount-ro 0       1
# swap was on /dev/vda5 during installation
UUID=f66d8449-1b98-4c06-b07e-4545021e7584 none            swap    sw              0       0
### LUN BASES DE DATOS ###
UUID=a2k5l7b-e763-4e33-9d1f-1f3nm1k21c /var/lib/mysql ext4 noatime,nodiratime,errors=remount-ro 1 1

/var/lib#

PASO 8: Ejecuto mkdir /var/lib/mysql para crear el directorio requerido (Ojo! aún NO he instalado el servidor de MySQL)

PASO 9: Ahora ejecuto el comando mount /var/lib/mysql

PASO 10: Verifico que el montaje haya sido exitoso con el comando mount

/var/lib# mount
/dev/sda1 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro)
/dev/sdb1 on /var/lib/mysql type ext4 (rw,noatime,nodiratime,errors=remount-ro)
/var/lib#

Verifico el espacio disponible con el comando df -h

/var/lib# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        14G  1.5G   12G  11% /
/dev/sdb1        150G   82M   147G   1% /var/lib/mysql
/var/lib#

Verifico el contenido de /var/lib/mysql , asegurándome que el usuario y grupo propietarios muestren una salida similar a la siguiente:

# ls -l /var/lib/mysql
total 28688
-rw-r–r– 1 root  root         0 Feb  2 08:55 debian-5.5.flag
-rw-rw—- 1 mysql mysql 18874368 Feb  2 08:55 ibdata1
-rw-rw—- 1 mysql mysql  5242880 Feb  2 08:55 ib_logfile0
-rw-rw—- 1 mysql mysql  5242880 Feb  2 08:55 ib_logfile1
drwx—— 2 mysql mysql     4096 Feb  2 08:55 lost@002bfound
drwx—— 2 mysql root      4096 Feb  2 08:55 mysql
-rw-rw—- 1 root  root         6 Feb  2 08:55 mysql_upgrade_info
drwx—— 2 mysql mysql     4096 Feb  2 08:55 performance_schema

En este punto, procedo con la instalación del servicio MYSQL:

# aptitude install mysql-server
The following NEW packages will be installed:
libaio1{a} libdbd-mysql-perl{a} libdbi-perl{a} libhtml-template-perl{a} libmysqlclient18{a} libterm-readkey-perl{a} mysql-client-5.5{a} mysql-client-core-5.5{a} mysql-common{a} mysql-server
mysql-server-5.5{a} mysql-server-core-5.5{a}
0 packages upgraded, 12 newly installed, 0 to remove and 96 not upgraded.
Need to get 9,329 kB of archives. After unpacking 96.7 MB will be used.
Do you want to continue? [Y/n/?] Y

Luego de instalado, procedo con la conexión y creación de bases de datos

mysql -u root -p
CREATE DATABASE fantasma;
CREATE USER fantasmauser@localhost IDENTIFIED BY ‘f4nt4sm4#$%’;
GRANT ALL PRIVILEGES ON fantasma.* TO fantasmauser@localhost;
FLUSH PRIVILEGES;
exit

Para verificar las bases de datos creadas se emplea la instrucción show databases

Para verificar los usuarios creados se emplea la instrucción select user,host from mysql.user;

Para permitir conexiones remotas a nuestro servidor de base de datos, debemos comentar la línea bind-address en el archivo /etc/mysql/my.cnf

#bind-address = 127.0.0.1

En servidores tipo Linux/Unix, este procedimiento es fácilmente extrapolable a cualquier otra aplicación, como Apache (/var/www) , PostgreSQL (/var/lib/postgresql) , etc

:wq

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: