MySQL

De Blogx Populi - Wiki Hispano
Saltar a: navegación, buscar

MySQL es un servidor de bases de datos relacionales basado en SQL, elegido como soporte de gestión de bases de datos por las siguientes características:

  • Capacidad de integración con sistemas abiertos: la integración de entornos de gestión de contenidos con MySQL como repositorio central de almacenamiento está en estos momentos tan desarrollada que la combinación de estas piezas de software trabajando juntas se ha bautizado como LAMP (Linux + Apache + MySQL + Php)
  • Óptimo para trabajo en red: MySQL implementa todas las funciones y utlidades de red para adaptarse a cualquier arquitectura cliente(s)/servidor(es)
  • Excelentes interfaces de administración para el servidor, tipo phpmyadmin

Contenido

[editar] Explicación de los archivos de bases de datos

  • .frm contienen información sobre la estructura de la tabla
  • .MYD contienen los registros de datos
  • .MYI contiene los índices aplicados a la tabla

[editar] Implementación de ejemplo (en Blogx Populi)

MySQL es el servidor de base de datos utilizada en los servidores de Blogx Populi que requieren de una. Tal es el caso de la utilizada en el presente wiki, como dentro del software BlogMail, en ese sentido estos programas se entienden como clientes de MySQL a través de Apache+PHP. MySQL está instalado en varios de nuestros servidores autogestionados

[editar] Instalación del servidor

Para BlogMail es suficiente instalar la versión 4.1:

aptitude install mysql-server-4.1

[editar] Administración

[editar] Creación

  • Crear Base de Datos
mysqladmin -u [usuaria] -p create [basededatos]
  • Crear usuaria de Base de Datos
mysql -u root -p -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON [usuaria].* TO [usuaria]@localhost IDENTIFIED BY '[password]'" mysql
  • Cambiar contraseña de usuaria
mysqladmin -u [usuaria] -p password [nuevo password]

[editar] Mantenimiento

  • Comprobar errores de MySQL en todas las bases de datos
mysqlcheck -u [usuaria] -p -A
  • Arreglar errores de MySQL en todas las bases de datos
mysqlcheck -u [usuaria] -p -r -A

[editar] Copias de seguridad

  • Hacer copia de seguridad de una base de datos (la de este wiki como ejemplo):
mysqldump -u wiki -p wikianfitrion > /home/wiki/backups/blogxpopuli-wikianfitrion-AAAAMMDD.sql
  • Restaurar copia de seguridad de una base de datos (la de este wiki como ejemplo):
mysql -u wiki -p wikianfitrion < /home/wiki/backups/blogxpopuli-wikianfitrion-AAAAMMDD.sql

Notas:

  • es importante probar y garantizar las copias de seguridad.
  • la copia de seguridad de la base de datos se puede trasladar a otra máquina para más seguridad:
scp wiki@blogxpopuli.org:backups/blogxpopuli-wikianfitrion-AAAAMMDD.sql .
  • hay que optimizar y automatizar este proceso para que mantenga copias de seguridad lo más actualizadas posible

[editar] Permitir conectar desde otros servidores

Por seguridad el servidor MySQL que instalamos desde Debian viene con acceso externo (TCP) desactivado por defecto. Para permitir que otros servidores se conecten a la base de datos, tenemos que activarlo de la siguiente manera:

En el archivo de configuracion /etc/mysql/my.cnf tenemos la siguiente línea:

bind-address = 127.0.0.1

este bind-address nos deja conectar únicamente desde el equipo local, para permitir accesos a nuestro mysql desde fuera debemos poner:

Para las conexiones que vienen desde la red local:

bind-address = 192.168.0.x

(suponiendo que tu red local sea el rango 192.168.0.*)

Para cualquier interface:

bind-address = 0.0.0.0

Nota: Por seguridad deberías regular el acceso al puerto 3306 desde tu cortafuegos.

[editar] Actualización del servidor

en desarrollo

[editar] Ejemplos

[editar] Ejemplos probados

[editar] Copia / restauración de este wiki

El wiki estaba alojado en istambul sobre la base de datos wikidb y la copia se realizará sobre un fichero ascii 26042006wikitech.sql que se sincroniza a otro servidor, ldap, con mediawiki instalado y configurado para leer en wiki2db; este protocolo está preparado para ejecutarse desde istambul como usuario root (ya autorizado por RSA en ldap), no se pide password, leer bien antes de copiar y pegar

# export ldap='10.215.173.5';export of=`date +%d%m%Y`wikitech.sql
# mysqldump wikidb > $of;rsync --progress $of $ldap:/home/admin/.
26042006wikitech.sql
    1503045 100%  900.20kB/s    0:00:01  (1, 100.0% of 1)
wrote 1503320 bytes  read 40 bytes  601344.00 bytes/sec
total size is 1503045  speedup is 1.00
# export cmd='mysqladmin drop wiki2db;
mysqladmin --verbose create wiki2db;
mysql --force=true --verbose wiki2db < /home/admin/26042006wikitech.sql'
# ssh $ldap "$cmd"

y suelta todo el output de la creación de la base de datos y la carga de los datos y ya se puede usar la copia de wikiTech ... ;)

Nota: acuérdate que tocaste el fichero /home/admin/26042006wikitech.sql porque petaba en la definición de un KEY mas largo de 500 bytes

[editar] Borrar todos los comentarios de una mailblog

DELETE FROM `wp_mailblog_comments`;

[editar] Ejemplos de libro

mysqldump  --opt database > backup-file.sql
mysql  database < backup-file.sql
mysql  -e 'source /patch-to-backup/backup-file.sql' database
mysqldump --databases database1 [ database2 database3... ]  > my_databases.sql
mysqldump --all-databases > all_databases.sql

[editar] Véase también

[editar] Enlaces externos

Herramientas personales
Espacios de nombres
Variantes
Acciones
proyectos
Navegación
Herramientas
Otros idiomas