MySQL
De BlogMail-Wiki, la enciclopedia libre.
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
Tabla de contenidos |
Instalación
Para BlogMail es suficiente instalar la versión 4.1:
aptitude install mysql-server-4.1
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]
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
- Arreglar errores de MySQL en una base de datos
mysqlcheck -u [usuaria] -p -r [basededatos]
Copias de seguridad
- Hacer copia de seguridad de una base de datos (la de este wiki como ejemplo):
mysqldump -u blogmail -p wikies > /home/blogmail/backups/wikies.sql
- Restaurar copia de seguridad de una base de datos (la de este wiki como ejemplo):
mysql -u blogmail -p wikies < /home/blogmail/backups/wikies.sql
Comentarios
- es importante probar y garantizar las copias de seguridad del wiki
Ejemplos
Ejemplos probados
copia / restauración de este wiki; el wiki está 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 ... ;)
- Notas
acuérdate que tocaste el fichero /home/admin/26042006wikitech.sql porque petaba en la definición de un KEY mas largo de 500 bytes
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
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.
borrar todos los comentarios de una mailblog
DELETE FROM `wp_mailblog_comments`;

