SlideShare une entreprise Scribd logo
1  sur  75
Administración MySQL


Óliver Centeno Álvarez
Octubre 2009




                         1
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009               Administración MySQL   2
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   3
I.   Introducción a MySQL

          1.   Características Técnicas
          2.   Instalación en Windows
          3.   Instalación en Linux
          4.   Consideraciones a Posteriori
          5.   phpMyAdmin
          6.   Ejercicios



Octubre 2009           1. Introducción a MySQL   4
1. Características Técnicas
              SGBD Relacional compatible con php,
               Perl, C, HTML, DreamWeaver
              Disponible para Windows, UNIX y MacOS
              MySQL AB (1995), Sun (2008), Oracle??
              Incluye
                  Capacidades de análisis integradas
                  Servicios de transformación y replicación
                  Programación
                  Soporte para múltiples procesadores
                  Transaccionalidad



Octubre 2009                1. Introducción a MySQL            5
2. Instalación en Windows
              http://www.mysql.com/
              mysql-5.x.y-win.zip
              Instalar como servicio de Windows
              Añadir el directorio bin al PATH
              Opciones de configuración
                  Servidor básico, dedicado o de desarrollo
                  BD de propósito general, solo transaccional o
                   nunca transaccional
                  Espacio y ubicación en disco
                  Nivel de concurrencia (OLAP/OLTP)
                  Red e idiomas
                  …

Octubre 2009                1. Introducción a MySQL                6
3. Instalación en Linux
              Binario, RPM o código fuente
              RHEL5 incluye el RPM en el DVD
                  mysql-5.0.45-7.el5.i386.rpm
                  mysql-server-5.0.45-7.el5.i386.rpm
                  mysql-test-5.0.45-7.el5.i386.rpm
                    /usr/share/sql-test
                    pass, disabled, skipped, fail
                  mysql-bench-5.0.45-7.el5.i386.rpm
                    /usr/share/sql-bench
              LAMP

Octubre 2009               1. Introducción a MySQL      7
4. Consideraciones a Posteriori
               Se debe testear la instalación
               1.   Inicializar las tablas (mysql_install_db)
               2.   Arrancar el demonio mysqld
               3.   Verificar la ejecución con mysqladmin
               4.   Verificar el apagado (shutdown)
               5.   Verificar la ejecución mostrando BBDD y tablas

               Se debe asignar una clave al usuario root
               Conviene tener un benchmark de pruebas
               Instalar php y Apache (LAMP)
               Comprobar que el servidor está en ejecución



Octubre 2009                 1. Introducción a MySQL                 8
5. phpMyAdmin
              Herramienta Web para administrar php y
               MySQL
                  http://localhost/phpmyadmin
                  http://localhost/phpMyAdmin
                  http://localhost/mysqladmin
              Consideraciones
                  Iniciar Apache
                  blowfish_secret
                  php-mcrypt
                  libmcrypt


Octubre 2009               1. Introducción a MySQL   9
6. Ejercicios
          1.   Lanzar los test de mysql
          2.   Comprobar la conexión con root
          3.   Mostrar las bases de datos
          4.   Mostrar las tablas de test
          5.   Mostrar las tablas de mysql
          6.   Mostrar la tabla user de mysql
          7.   Cargar el benchmark Winsconsin
          8.   Instalar phpMyAdmin resolviendo los
               avisos pertinentes
          9.   Consultar la estructura de las tablas


Octubre 2009             1. Introducción a MySQL       10
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   11
II. Conceptos Básicos

          1.   Conexión al Servidor
          2.   Consultas SQL
          3.   Tipos de Datos
          4.   Tablas
          5.   Índices
          6.   Ejercicios



Octubre 2009            2. Conceptos Básicos   12
1. Conexión al Servidor
              Se requiere
                  Un cliente (mysql)
                  Conexión de Red
                  Un usuario con permisos
              Comprobar la conexión
                  mysqladmin version
              Lanzar el cliente
                  mysql –u <usuario> -p [-h host] [bd]
              Obtener información
                  show
              Abrir Base de Datos
                  connect <bd>


Octubre 2009                 2. Conceptos Básicos         13
2. Consultas SQL

              SELECT-FROM-WHERE
              INSERT-INTO-VALUES
              UPDATE-SET-WHERE
              DELETE-WHERE
              CREATE TABLE
              DROP TABLE
              ALTER TABLE


Octubre 2009          2. Conceptos Básicos   14
3. Tipos de Datos
              CHAR (0-255)
              VARCHAR (0-255)
              BINARY
              VARBINARY
              BLOB
              TEXT
              ENUM (‘a’, ‘b’, ‘c’)
              SET (‘a’, ‘b’, ‘c’)
              INT
              FLOAT (TAMAÑO, DECIMALES)
              DOUBLE (TAMAÑO, DECIMALES)
              DECIMAL (TAMAÑO, DECIMALES)
              DATETIME
              TIMESTAMP


Octubre 2009              2. Conceptos Básicos   15
4. Tablas
              Conjunto conexo de información del
               mismo tipo (campos) cuya unidad
               elemental de información es el registro
              information_schema.tables
              Operaciones
                  Crear/Borrar
                  Modificar
              Tipos de tabla (show engines;)
                  MyISAM
                  InnoDB
                  MEMORY
                  MERGE


Octubre 2009                2. Conceptos Básicos         16
4. Tablas
              MyISAM
                  Index Sequential Access Method
                  Recomendadas cuando los datos cambian poco
                  Estáticas
                      No tiene campos variables
                      Más rápido pero más pesado
                  Dinámicas
                      Cada registro ocupa distinto tamaño
                      Se indica el tamaño delante
                  Comprimidas
                      De sólo lectura
                      Muy rápido y ocupa muy poco
                      Aconsejable si se usan dispositivos lentos


Octubre 2009                   2. Conceptos Básicos                 17
4. Tablas
              InnoDB
                  Transaccionales
                  Bloquean el registro modificado
                  Cumplen ACID (Atomic, Consistent, Isolated,
                   Durable)
              MEMORY
                  Almacenadas en RAM
                  ENGINE = MEMORY
              MERGE
                  Unión de varias tablas MyISAM
                  Divide y vencerás
                  ENGINE = MERGE
                  UNION = (a, b, c)



Octubre 2009                 2. Conceptos Básicos                18
5. Índices
              Estructura interna para encontrar uno o más
               registros de forma rápida
              Aplicables a campos de filtrado
              Permiten:
                  Ordenar
                  Acceso directo
                  Unión de tablas
              Desventajas:
                  Espacio almacenado
                  Coste de actualización
              Modificadores:
                  UNIQUE INDEX
                  ADD/DROP INDEX



Octubre 2009                  2. Conceptos Básicos           19
6. Ejercicios
          1.   Crear una tabla Películas de tipo InnoDB
               en test con título, director y soporte
               (DivX, DVD, BluRay)
          2.   Añadirle una columna id entera con
               auto-incremento
          3.   Convertir esa columna en clave primaria
          4.   Crear una tabla Soportes de tipo
               MyISAM en test
          5.   Modificar la tabla Películas para que el
               campo soporte sea clave foránea


Octubre 2009             2. Conceptos Básicos         20
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   21
III. Administración de la BD

          1.   Gestión de Usuarios
          2.   Copias de Seguridad
          3.   Logs
          4.   Actualizaciones
          5.   Ejercicios




Octubre 2009          3. Administración de la BD   22
1. Gestión de Usuarios
              Asignar privilegios para ejecutar tareas a
               usuarios con permiso de acceso
              Evitar que se modifiquen tablas críticas
              Utilizar root es una mala práctica
              No utilizar contraseña también
              Tipos de usuario según permisos
                  Propietario
                  Clientes
                  Consumidores/Web
              Tareas
                  CREATE, ALTER, DROP, SELECT, INSERT, UPDATE,
                   DELETE, INDEX, GRANT OPTION , ALL


Octubre 2009               3. Administración de la BD        23
1. Gestión de Usuarios
              Tablas information_schema.*_privileges
              Tablas mysql.db, user y *_priv
              GRANT
                  <TAREA> [, <TAREA>, …]
                  ON {tablas | esquema | *.* }
                  TO <usuario[@host]>
                  [IDENTIFIED BY <contraseña>]
                  [WITH GRANT OPTION]
              REVOKE-ON-FROM
              FLUSH PRIVILEGES;


Octubre 2009              3. Administración de la BD   24
1. Gestión de Usuarios
              mysqladmin –u <usuario> password “x”
              SET PASSWORD [FOR usuario@host] =
               PASSWORD(“contraseña”)
              DROP USER <usuario>
              CREATE USER <usuario>
              GRANT USAGE ON *.* TO <usuario>
              mysqld_safe --skip-grant-tables
                  OJO! Propagar los cambios
                  OJO! Apagar el servidor MySQL


Octubre 2009              3. Administración de la BD   25
1. Gestión de Usuarios
              Ejercicios
                  Añadir una clave al usuario root mediante
                   mysqladmin
                  Cambiar la clave mediante SET y GRANT
                  Propagar los cambios
                  Salir y entrar sin contraseña
                  Crear un usuario alumno con permisos de
                   cliente sobre test
                  Realizar consultas de prueba
                  Revocar los permisos de modificación
                   bajándole a consumidor



Octubre 2009                3. Administración de la BD         26
1. Gestión de Usuarios
              Otros privilegios
                  FILE
                  PROCESS
                  RELOAD
                  SHUTDOWN
              Modificadores
                  *    para indicar bd, tabla o global
                  %    para indicar máquina cliente
              Permisos sobre columnas
                  Se indican entre paréntesis
                  GRANT UPDATE (c1, c2, c3) ON …


Octubre 2009              3. Administración de la BD      27
1. Gestión de Usuarios
              Recursos
                  Se puede restringir el número máximo de
                   recursos consumibles por un usuario
                  max_questions             consultas/hora
                  max_updates               en una hora
                  max_connections           conexiones/hora
                  max_user_connections      simultáneas
                  UPDATE mysql.user SET …




Octubre 2009               3. Administración de la BD          28
2. Copias de Seguridad

              mysqladmin variables
                  Muestra los directorios importantes
                  basedir          /usr/
                  bdb_home         /var/lib/mysql/
              Opciones para copias de seguridad
                  Mantener copia de los archivos de
                   estos directorios
                  mysqldump bd [tablas]


Octubre 2009              3. Administración de la BD     29
2. Copias de Seguridad
              MySQLdump vuelca la BD como
               sentencias SQL
              Recogerlas en un fichero portable .sql
              Para BBDD grandes conviene comprimir
               los datos
                  mysqldump db | gzip > backup-fecha.sql
              Modificadores
                  --add-drop-database
                  --add-drop-table
                  --lock-tables
                  --opt
                  --single-transaction


Octubre 2009               3. Administración de la BD       30
2. Copias de Seguridad
              Recuperación
                  Se pueden recuperar hasta los privilegios
                  Habrá que arrancar sin tablas grant
                  mysql db < backup-fecha.sql
              Automatización
                  Crear un bash que genere la copia
                  Añadir el trabajo a cron para que lo ejecute a
                   una hora determinada
                  crontab <fichero>
                  Minuto, Hora, Día, Mes, Año, DiaSem, tarea
                  webmin


Octubre 2009               3. Administración de la BD           31
3. Logs
              MySQL mantiene diferentes registros de
               actividad (logs)
                  Consultas: para conexiones y consultas
                     Arrancar mysqld con --log [=ruta]
                  Errores: para todo tipo de errores
                     /var/lib/mysql/maquina.err
                     Activar --log-error para mysqld
                  Binario: para instrucciones de alteración
                     --log-bin [=ruta]
                     mysqlbinlog fichero
                  Lento: para consultas muy lentas
                     --log-slow-queries



Octubre 2009               3. Administración de la BD          32
3. Logs
              Logs en tablas
                  MYSQL.GENERAL_LOG
                  MYSQL.SLOW_LOG
              Solo están disponibles a partir de la
               versión 5.1.6
              http://dev.mysql.com/downloads/
                  Server
                  Client
              Problemas
                  Incompatibilidades
                  Demonio diferente



Octubre 2009                3. Administración de la BD   33
4. Actualizaciones
              Las actualizaciones del servidor añaden
               tablas nuevas, reparan bugs y mejoran
               el rendimiento
              Siempre instalar versiones estables
              http://www.mysql.com
              Conviene
                  Para el servidor
                  Hacer una copia de seguridad
                  Copia de seguridad de ficheros de
                   configuración
                  mysql_upgrade -p


Octubre 2009               3. Administración de la BD    34
5. Ejercicios
          1.   Crear usuarios propietario, cliente y
               consumidor para la bd test
          2.   Comprobar los privilegios en
               USER_PRIVILEGES
          3.   Realizar una copia de seguridad de test
               y restaurarla sobre nuevo-test
          4.   Comprobar las últimas versiones de
               MySQL y la fecha de la 5.0.45 incluida
               en RHEL 5.3
          5.   Activar los logs y comprobar los ficheros
               generados


Octubre 2009            3. Administración de la BD     35
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   36
IV. Herramientas de MySQL

          1.   MySQLadmin
          2.   Utilidades ISAM
          3.   Otras Utilidades
          4.   Herramientas mysql-gui
          5.   Ejercicios




Octubre 2009           4. Herramientas MySQL   37
1. MySQLadmin
              Permite controlar
                  El funcionamiento del servidor
                  La asignación de contraseñas
                  La creación y borrado de instancias
              mysqladmin comando
              Modificadores:
                  -f    fuerza la operación
                  -r    muestra valores previos
                  -i    ejecuta modo ralentizado
                  -w    espera si no hay conexión


Octubre 2009                4. Herramientas MySQL        38
1. MySQLadmin
              Comandos:
                  create <bd>               crea una instancia
                  drop <bd>                 elimina una instancia
                  ping                      estado del servidor
                  status                    estado del servidor
                  extended-status           estado del servidor
                  flush-privileges          recarga privilegios
                  flush-tables              vacía caché de tablas
                  flush-logs                vacía caché de logs
                  reload                    recarga privilegios
                  refresh                   vacía cachés y recarga logs
                  processlist               lista hilos en el servidor
                  kill <idProceso>          mata hilos en el servidor
                  shutdown                  apaga el servidor


Octubre 2009                 4. Herramientas MySQL                     39
2. Utilidades ISAM
              MySQLhotcopy
                  Realiza copias de los ficheros de BD
                  Debe lanzarse en el directorio de datos
                      /var/lib/mysql
                  Sólo aplicable a tablas MyISAM
                  mysqlhotcopy <bd> [ruta/dir/copia]
                  Admite expresiones regulares
                      mysqlhotcopy <bd>./expresion/
                  Modificadores:
                      -n                     modo de prueba
                      --allowold             si existe renombra _old
                      --keepold              mantiene los _old
                      --noindices            no copia los índices


Octubre 2009                  4. Herramientas MySQL                     40
2. Utilidades ISAM
              MyISAMpack
                  Permite obtener tablas MyISAM comprimidas
                  Hasta 70% de reducción
                  Acceso rápido a registros (sólo lectura)
                  myisampack tabla
                  Modificadores:
                    -b realiza un backup de seguridad

                    -t testea el empaquetamiento

                    -w espera si la tabla está en uso

                    -f fuerza el empaquetamiento

                  myisamchk --unpack

Octubre 2009               4. Herramientas MySQL           41
2. Utilidades ISAM
              MyISAMchk
                  Verifica el estado de las tablas MyISAM
                  Se puede indicar una o varias tablas
                  Admite comodines (*, ?)
                  myisamchk <ruta>/<tabla>.MYI
                  Hacer copia de los ficheros antes de lanzar
                   MyISAMchk por si empeoramos
                  Modificadores:
                      -a   análisis de distribución de claves
                      -b   backup de la tabla (tabla.old)
                      -F   checkeo rápido para tablas no cerradas
                      -e   checkeo extendido (riguroso)
                      -m   checkeo extendigo rápido (99% eficiente)


Octubre 2009                   4. Herramientas MySQL                   42
2. Utilidades ISAM
              MyISAMchk
                  Más modificadores:
                      -U   marca las tablas como defectuosas
                      -T   modo de solo lectura
                      -d   muestra información de la tabla
                      -i   muestra estadísticas de la tabla
                  Una vez detectados errores se puede intentar
                   recuperar
                      myisamchk --recover --quick <tabla>
                      myisamchk --recover <tabla>
                      myisamchk --safe-recover <tabla>
                  Conviene bloquear la tabla durante el proceso
                      LOCK TABLE <tabla> READ;
                      FLUSH TABLES;



Octubre 2009                   4. Herramientas MySQL               43
3. Otras Utilidades
              MySQLcheck
                  Similar a MyISAMchk pero con mysqld
                   levantado
                  Utiliza comandos SQL
                  Opera para tablas de una bd, varias bbdd o
                   todas las bbdd
                     --databases <bd1> [<bd2> …]
                     --all-databases
                  Se puede renombrar
                     mysqlrepair
                     mysqlanalyze
                     mysqloptimize
                  --auto-repair


Octubre 2009                4. Herramientas MySQL               44
3. Otras Utilidades
              MySQLshow
                  Muestra información de las instancias, tablas,
                   columnas e índices de MySQL
                  Se puede solicitar para una instancia, tabla o
                   columna concretas
                  Por defecto muestra todas las instancias del
                   servidor
                  mysqlshow [bd [tabla [columna]]]
                  Modificadores:
                     -i muestra información del estado
                     -k muestra las claves de cada tabla


Octubre 2009                4. Herramientas MySQL               45
3. Otras Utilidades
              MySQLbinlog
                  Permite examinar ficheros de log binarios
                  mysqlbinlog <fichero>
                  Modificadores:
                     -d <bd> carga sólo la instancia indicada
                     -o <N>     ignora las N primeras líneas
                     -r <file> vuelca a un fichero
                     -s         formato corto
                     --start-datetime=“YYYY-MM-DD hh:mm:ss”
                     --stop-datetime=“YYYY-MM-DD hh:mm:ss”



Octubre 2009                4. Herramientas MySQL                46
3. Otras Utilidades
              MySQLimport
                  Permite cargar datos de ficheros de texto
                  mysqlimport <bd> <fichero>
                  Crea una tabla con el nombre del fichero (sin
                   extensión)
                  Modificadores:
                     -c indica columnas concretas a importar
                     -f fuerza el proceso aunque haya errores
                     -r reemplaza filas si hay claves duplicadas
                     -i mantiene filas si se intentan duplicar
                     -l bloquea las tablas para escritura



Octubre 2009                4. Herramientas MySQL               47
4. Herramientas mysql-gui
              MySQL Administrator
                  Administración de servidores, esquemas, tablas y
                   usuarios de MySQL
                  Contenidos:
                      Información de servidor
                      Control de servicios
                      Parámetros de arranque
                      Administración de usuarios
                      Conexiones de servidor
                      Monitor
                      Logs
                      Backups
                      Replicación
                      Esquemas/Catálogos



Octubre 2009                  4. Herramientas MySQL               48
4. Herramientas mysql-gui
              MySQL Query Browser
                  Crear, ejecutar, y optimizar consultas SQL
                  De manera “gráfica”
                  Permite:
                     Buscar y editar los registros que nos
                      interesen
                     Crear instancias, tablas, vistas, …
                     Acceso a parámetros, sintaxis, funciones,
                      transacciones, …
                     Creación, edición y depuración de scripts
                     Exportación de resultados


Octubre 2009                4. Herramientas MySQL                 49
4. Herramientas mysql-gui
              MySQL Migration Toolkit
                  Asistencia para la migración de esquemas y
                   datos desde otros SGBD relacionales a
                   MySQL
                     SQL Server
                     Oracle
                     Access
                     MySQL
                     Sybase
                     JDBC
                  Herramienta texto
                  Herramienta terminal


Octubre 2009                4. Herramientas MySQL               50
5. Ejercicios
          1.   Crear una instancia “nueva” con mysqladmin
          2.   Importar la copia de seguridad de test
          3.   Crear un fichero csv provincias con el C.P. y
               nombre de cada provincia de CLM
          4.   Crear una tabla provincias en “nueva” e
               importar el csv
          5.   Comprimir la tabla provincias
          6.   Crear un usuario junta con permisos de
               propietario sobre la instancia “nueva”
          7.   Repetir los ejercicios 3 y 4 con una base de
               datos Access



Octubre 2009               4. Herramientas MySQL               51
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   52
V.    Características Avanzadas

          1.   Optimización
          2.   Plan de Ejecución
          3.   Análisis de Tablas
          4.   Replicación
          5.   Ejercicios




Octubre 2009          5. Características Avanzadas   53
1. Optimización
              Maximizar la eficiencia de nuestro SGBD
                  Velocidad y número de usuarios simultáneos
              Índices
                  Mejoran los tiempos de acceso
                  Ocupan espacio
                  Coste de recalcular
                  Tipos: INDEX, PRIMARY, UNIQUE, FULLTEXT
              Servidor
                  Procesador, acceso a disco, memoria, …
                  Activar caché, DMA, …


Octubre 2009              5. Características Avanzadas          54
1. Optimización

              Pruebas de rendimiento
                  mysqlslap
                  Lanza una consulta repetidas veces y
                   simultáneamente (simular carga)
                  Modificadores:
                      --concurrency nº de conexiones
                      --iterations    nº de repeticiones
                      --query         consulta/script a probar
                      --auto-generate-sql


Octubre 2009               5. Características Avanzadas       55
2. Plan de Ejecución
              Operaciones del servidor que permiten
               recuperar los datos de una consulta
              EXPLAIN SELECT …
                  id
                  select_type                  tipo de consulta
                  table                        tabla asociada
                  type                         tipo de combinación
                  possible_keys                índices utilizables
                  key                          índice utilizado
                  key_len                      tamaño del índice
                  ref                          campo asociado al índice
                  rows                         filas a recuperar
                  extra                        información extra



Octubre 2009               5. Características Avanzadas                    56
2. Plan de Ejecución
              Combinaciones
                  ALL               recorrer todas las filas
                  index             recorrer todo el índice
                  ref               por clave foránea
                  eq_ref            por clave foránea indexada
              Información extra
                  Using   where                 utiliza where
                  Using   index                 utiliza índices
                  Using   temporary             crea tablas temporales
                  Using   filesort              requiere ordenación


Octubre 2009                5. Características Avanzadas                  57
3. Análisis de Tablas
              Los índices pierden eficacia por las
               constantes modificaciones
              Aparecen huecos en los registros
              SHOW INDEX FROM <tabla>;
                  Muestra los índices de una tabla
              ANALYZE TABLE <tabla>;
                  Analiza y reordena los índices
              OPTIMIZE TABLE <tabla>;
                  Reordena los datos para eliminar huecos



Octubre 2009               5. Características Avanzadas      58
4. Replicación
              Transportar datos entre dos o más servidores
               permitiendo que estén almacenados en más de
               un sitio, y aumentando la disponibilidad y el
               rendimiento de las consultas
              Modelo de replicación:
                  publicador, suscriptor, distribuidor, publicación,
                   artículo y suscripción
              Tipos básicos de replicación:
                  De instantáneas
                  Unidireccional
                  Transaccional
                  Por mezcla



Octubre 2009                5. Características Avanzadas                59
4. Replicación
              MySQL soporta replicación asíncrona
               unidireccional
                  Un servidor actúa como maestro y uno o más
                   actúan como esclavos
              El servidor maestro escribe actualizaciones en
               fichero de log binario
              Mantiene un índice para rastrear los logs
              Cuando un esclavo se conecta al maestro,
               informa de la última posición que ha leído y
               recibe cualquier actualización desde entonces
              LOAD TABLE FROM MASTER;
              LOAD DATA FROM MASTER;


Octubre 2009               5. Características Avanzadas         60
4. Replicación
          1.   Iniciar el maestro con logs binarios
          2.   Crear una cuenta en el servidor maestro para la
               replicación
                  GRANT REPLICATION SLAVE, SUPER, RELOAD ON …
          3.   Realizar volcado y bloqueo de tablas
                  FLUSH TABLES WITH READ LOCK;
          4.   Crear un backup de los datos
          5.   Desbloquear las tablas
                  UNLOCK TABLES;
          6.   Detener el maestro
                  mysqladmin shudown
          7.   Añadir a /etc/my.cnf
                  [mysqld]
                  server-id=1



Octubre 2009                5. Características Avanzadas         61
4. Replicación
          8.     Parar cada servidor esclavo
          9.     Añadir a cada /etc/my.cnf
                    server-id=i                    con distintos i > 1
          10.    Arrancar cada esclavo
                1.   Si se hizo backup de logs binarios copiarlos al directorio
                     de datos antes
          11.    Recuperar la copia de seguridad en los esclavos
          12.    Ejecutar en cada esclavo
                    CHANGE MASTER TO
                     MASTER_HOST='nombre_host_maestro',
                     MASTER_USER='usuario_replicacion',
                     MASTER_PASSWORD='password_replicacion',
                     MASTER_LOG_FILE='fichero de log guardado',
                     MASTER_LOG_POS=posición en el log;
          13.    Iniciar el flujo de esclavo
                    START SLAVE;


Octubre 2009                   5. Características Avanzadas                   62
5. Ejercicios
          1.   Comprobar el plan de ejecución de select * from
               tenk1
          2.   Mejorar la consulta si se puede
          3.   Añadir los índices pertinentes para mejorar la
               consulta select * from tenk1 where string1 like
               ‘%AAA%’
          4.   Buscar los registros de tenk1 con string4=
               ‘OOOOxx’
          5.   Visualizar el plan de ejecución
          6.   Mejorar la consulta si se puede
          7.   Eliminar esos registros
          8.   Analizar los cambios en la tabla
          9.   Compactar la tabla


Octubre 2009             5. Características Avanzadas        63
Contenidos

               I.     Introducción a MySQL
               II.    Conceptos Básicos
               III.   Administración de la BD
               IV.    Herramientas de MySQL
               V.     Características Avanzadas
               VI.    El Lenguaje MySQL



Octubre 2009                Administración MySQL   64
VI. El Lenguaje MySQL

          1.   Sentencias DML
          2.   Sentencias DLL
          3.   Sentencias Auxiliares
          4.   Operadores y Funciones
          5.   Transacciones
          6.   Privilegios
          7.   Otras Sentencias
          8.   Ejercicios

Octubre 2009           6. El Lenguaje MySQL   65
1. Sentencias DML
              Data Manipulation Language
              Consulta y manipulación de datos
              SELECT
                  FROM-WHERE-GROUP BY-ORDER BY
                  FROM-JOIN-ON
                  FROM-UNION-SELECT
              INSERT
                  INTO-() VALUES ()
                  INTO-SELECT
              UPDATE
                  SET-WHERE
              DELETE
                  FROM-WHERE



Octubre 2009                 6. El Lenguaje MySQL   66
1. Sentencias DML
              LOAD DATA INFILE <fichero> [IGNORE |
               REPLACE] INTO TABLE <tabla>
              Carga datos externos en una tabla
               existente
              Admite opciones de importación a
               continuación
                  FIELDS
                     TERMINATED BY <separador>
                     ENCLOSED BY <carácter>
                     ESCAPED BY <carácter>
                  LINES TERMINATED BY <separador>
                  IGNORE <n> LINES



Octubre 2009               6. El Lenguaje MySQL       67
2. Sentencias DDL
              Data Definition Language
              Esquemas y estructuras de tablas en el SGBD
              CREATE
                  DATABASE [IF NOT EXIST] <bd>;
                  TABLE <t>(<campo> <tipo> <otros>,…);
                  INDEX <i> ON <tabla> (<columnas>);
              ALTER TABLE
                  ADD <campo> <tipo>;
                  ADD CONSTRAINT <restricción>;
                  ADD INDEX <i> (<columnas>);
                  MODIFIY <campo> <tipo>;
                  RENAME AS <nueva>;
              DROP
                  DATABASE [IF EXIST] <bd>;
                  TABLE [IF EXIST] <bd>;
                  INDEX <i> ON <tabla>;


Octubre 2009                  6. El Lenguaje MySQL           68
3. Construcciones Auxiliares
              SELECT
                  DISTINCT
                  AS <alias>
              WHERE
                  BETWEEN <inf> AND <sup>
                  IN (<conjunto de valores>)
                  LIKE ‘<patrón>’
                  IS NULL
                  IS NOT NULL
              CONSTRAINT
                  CHECK (<condicion>)
                  PRIMARY KEY (<campo>)
                  FOREIGN KEY (<campo>) REFERENCES <tabla>
                   (<campo>)



Octubre 2009                    6. El Lenguaje MySQL          69
4. Operadores y Funciones
              Operadores
                  +, -, *, /, %, AND, OR, NOT, <, >, =, <>, <=>
              Funciones de cadenas
                  Concat(cadena1, cadena2, …)
                  Locate(subcadena, cadena, inicio)
                  Reverse(cadena)
                  Substring(cadena, inicio, fin)
              Funciones Aritméticas
                  Abs(<campo>)
                  Pi()
                  Sqrt(<campo>)
                  Round(<campo>)



Octubre 2009                 6. El Lenguaje MySQL             70
4. Operadores y Funciones
              Funciones estadísticas
                  Avg(<campo>)
                  Count(<campo>)
                  Max(<campo>)
                  Min(<campo>)
                  Sum(<campo>)
              Funciones de fecha y hora
                  Dayname(<fecha>)
                  Dayofmonth(<fecha>)
                  Hour (<fecha>)
                  Current_date()



Octubre 2009               6. El Lenguaje MySQL   71
5. Transacciones
              START TRANSACTION | BEGIN
                  <sentencias SQL>
                  SAVEPOINT <punto de guarda>
              COMMIT
                  <sentencias SQL>
              ROLLBACK
                  <sentencias SQL>
                  TO SAVEPOINT <punto de guarda>
              OJO!! Las DDL no se pueden deshacer
              Alternativa:
                  LOCK TABLES
                  <sentencias SQL>
                  UNLOCK TABLES



Octubre 2009                 6. El Lenguaje MySQL    72
6. Privilegios
              DCL (Data Control Language)
                  GRANT
                    ON <elemento>
                    TO <usuario>
                    IDENTIFIED BY <password>
                  REVOKE
                    ON <elemento>
                    FROM <usuario>
                  DENY
                    ON <elemento>
                    TO <usuario>


Octubre 2009                6. El Lenguaje MySQL   73
7. Otras Sentencias
              ANALYZE TABLE
              OPTIMIZE TABLE
              SHOW
              DESCRIBE
              EXPLAIN
              LOCK TABLE(S)
              UNLOCK TABLE(S)



Octubre 2009          6. El Lenguaje MySQL   74
Muchas Gracias


Óliver Centeno Álvarez




                         75

Contenu connexe

Tendances (13)

trabajo numero 3
trabajo numero 3trabajo numero 3
trabajo numero 3
 
MySql
MySqlMySql
MySql
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
SQLite3
SQLite3SQLite3
SQLite3
 
Instalaciion de mysql para windows
Instalaciion de mysql para windowsInstalaciion de mysql para windows
Instalaciion de mysql para windows
 
Mysql2
Mysql2Mysql2
Mysql2
 
Instalacion de mysql en ubuntu
Instalacion de mysql en ubuntuInstalacion de mysql en ubuntu
Instalacion de mysql en ubuntu
 
No Mueras De Exito
No Mueras De ExitoNo Mueras De Exito
No Mueras De Exito
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity Edition
 
Presentacion backup recover - copia
Presentacion backup recover - copiaPresentacion backup recover - copia
Presentacion backup recover - copia
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
 
Mysql
MysqlMysql
Mysql
 
Virual box proyecto
Virual box proyectoVirual box proyecto
Virual box proyecto
 

En vedette (20)

Joomla!
Joomla!Joomla!
Joomla!
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Java en Tiempo Real
Java en Tiempo RealJava en Tiempo Real
Java en Tiempo Real
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Microsoft Test Manager 2010
Microsoft Test Manager 2010Microsoft Test Manager 2010
Microsoft Test Manager 2010
 
Azure
AzureAzure
Azure
 
Sun Java System Web Server 6.1
Sun Java System Web Server 6.1Sun Java System Web Server 6.1
Sun Java System Web Server 6.1
 
ATL
ATLATL
ATL
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Liferay
LiferayLiferay
Liferay
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Access contra MySQL
Access contra MySQLAccess contra MySQL
Access contra MySQL
 
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
TFS 10
TFS 10TFS 10
TFS 10
 
Métrica v3 y RUP
Métrica v3 y RUPMétrica v3 y RUP
Métrica v3 y RUP
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Caracteristicas Microsoft SQL Server
Caracteristicas Microsoft SQL ServerCaracteristicas Microsoft SQL Server
Caracteristicas Microsoft SQL Server
 
Web services y java
Web services y javaWeb services y java
Web services y java
 

Similaire à Guía MySQL administración

Los gestores de base de datos
Los gestores de base de datosLos gestores de base de datos
Los gestores de base de datosEduardo Agila
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5juliomacr
 
Sistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQLSistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQLlissette_torrealba
 
Los gestores de base de datos
Los gestores de base de datosLos gestores de base de datos
Los gestores de base de datosBetyllo Ocegueda
 
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrain
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrainCursos de hp ux server2008 sql server itil v3 oracle asterisk softrain
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrainServicios Educativos Softrain C.A.
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratoriofreddy Fred
 
Comparacion entre my sql y sql server
Comparacion entre my sql y sql serverComparacion entre my sql y sql server
Comparacion entre my sql y sql serverJorge Luis Tinoco
 
Sgbd roberto escriche marcelo hualoto
Sgbd roberto escriche marcelo hualotoSgbd roberto escriche marcelo hualoto
Sgbd roberto escriche marcelo hualotoKenny24
 
Otoniel hernandez datashow - los gestores de base de datos
Otoniel hernandez   datashow - los gestores de base de datosOtoniel hernandez   datashow - los gestores de base de datos
Otoniel hernandez datashow - los gestores de base de datosOtoniel Hernandez
 
Otoniel hernandez datashow - los gestores de base de datos
Otoniel hernandez   datashow - los gestores de base de datosOtoniel hernandez   datashow - los gestores de base de datos
Otoniel hernandez datashow - los gestores de base de datosomar5544
 

Similaire à Guía MySQL administración (20)

Los gestores de base de datos
Los gestores de base de datosLos gestores de base de datos
Los gestores de base de datos
 
My sql clase_1
My sql clase_1My sql clase_1
My sql clase_1
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5
 
Sistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQLSistema Gestor de Base de Datos MYSQL
Sistema Gestor de Base de Datos MYSQL
 
Guía de MySql - Lissette Torrealba
Guía de MySql  - Lissette TorrealbaGuía de MySql  - Lissette Torrealba
Guía de MySql - Lissette Torrealba
 
Sistemas de g base de datos
Sistemas de g base de datosSistemas de g base de datos
Sistemas de g base de datos
 
Sistemas de Gestion de Base de Datos
Sistemas de Gestion de Base de DatosSistemas de Gestion de Base de Datos
Sistemas de Gestion de Base de Datos
 
Los gestores de base de datos
Los gestores de base de datosLos gestores de base de datos
Los gestores de base de datos
 
Comparativa SGBDR
Comparativa SGBDRComparativa SGBDR
Comparativa SGBDR
 
MySQL - Guillermo Jiménez
MySQL - Guillermo JiménezMySQL - Guillermo Jiménez
MySQL - Guillermo Jiménez
 
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrain
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrainCursos de hp ux server2008 sql server itil v3 oracle asterisk softrain
Cursos de hp ux server2008 sql server itil v3 oracle asterisk softrain
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
 
Comparacion entre my sql y sql server
Comparacion entre my sql y sql serverComparacion entre my sql y sql server
Comparacion entre my sql y sql server
 
Sgbd roberto escriche marcelo hualoto
Sgbd roberto escriche marcelo hualotoSgbd roberto escriche marcelo hualoto
Sgbd roberto escriche marcelo hualoto
 
Otoniel hernandez datashow - los gestores de base de datos
Otoniel hernandez   datashow - los gestores de base de datosOtoniel hernandez   datashow - los gestores de base de datos
Otoniel hernandez datashow - los gestores de base de datos
 
Otoniel hernandez datashow - los gestores de base de datos
Otoniel hernandez   datashow - los gestores de base de datosOtoniel hernandez   datashow - los gestores de base de datos
Otoniel hernandez datashow - los gestores de base de datos
 
MariaDb VS MySql
MariaDb VS MySql MariaDb VS MySql
MariaDb VS MySql
 
S M B D
S M B DS M B D
S M B D
 
Smbd.
Smbd.Smbd.
Smbd.
 
Tema LOS SGBD O DBMS.pptx
Tema LOS SGBD O DBMS.pptxTema LOS SGBD O DBMS.pptx
Tema LOS SGBD O DBMS.pptx
 

Plus de Oliver Centeno

Plus de Oliver Centeno (6)

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
 
MSS 2010
MSS 2010MSS 2010
MSS 2010
 
PMP, Project Management Professional
PMP, Project Management ProfessionalPMP, Project Management Professional
PMP, Project Management Professional
 
Hibernate
HibernateHibernate
Hibernate
 
OSGi
OSGiOSGi
OSGi
 

Dernier

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Dernier (20)

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Guía MySQL administración

  • 1. Administración MySQL Óliver Centeno Álvarez Octubre 2009 1
  • 2. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 2
  • 3. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 3
  • 4. I. Introducción a MySQL 1. Características Técnicas 2. Instalación en Windows 3. Instalación en Linux 4. Consideraciones a Posteriori 5. phpMyAdmin 6. Ejercicios Octubre 2009 1. Introducción a MySQL 4
  • 5. 1. Características Técnicas  SGBD Relacional compatible con php, Perl, C, HTML, DreamWeaver  Disponible para Windows, UNIX y MacOS  MySQL AB (1995), Sun (2008), Oracle??  Incluye  Capacidades de análisis integradas  Servicios de transformación y replicación  Programación  Soporte para múltiples procesadores  Transaccionalidad Octubre 2009 1. Introducción a MySQL 5
  • 6. 2. Instalación en Windows  http://www.mysql.com/  mysql-5.x.y-win.zip  Instalar como servicio de Windows  Añadir el directorio bin al PATH  Opciones de configuración  Servidor básico, dedicado o de desarrollo  BD de propósito general, solo transaccional o nunca transaccional  Espacio y ubicación en disco  Nivel de concurrencia (OLAP/OLTP)  Red e idiomas  … Octubre 2009 1. Introducción a MySQL 6
  • 7. 3. Instalación en Linux  Binario, RPM o código fuente  RHEL5 incluye el RPM en el DVD  mysql-5.0.45-7.el5.i386.rpm  mysql-server-5.0.45-7.el5.i386.rpm  mysql-test-5.0.45-7.el5.i386.rpm  /usr/share/sql-test  pass, disabled, skipped, fail  mysql-bench-5.0.45-7.el5.i386.rpm  /usr/share/sql-bench  LAMP Octubre 2009 1. Introducción a MySQL 7
  • 8. 4. Consideraciones a Posteriori  Se debe testear la instalación 1. Inicializar las tablas (mysql_install_db) 2. Arrancar el demonio mysqld 3. Verificar la ejecución con mysqladmin 4. Verificar el apagado (shutdown) 5. Verificar la ejecución mostrando BBDD y tablas  Se debe asignar una clave al usuario root  Conviene tener un benchmark de pruebas  Instalar php y Apache (LAMP)  Comprobar que el servidor está en ejecución Octubre 2009 1. Introducción a MySQL 8
  • 9. 5. phpMyAdmin  Herramienta Web para administrar php y MySQL  http://localhost/phpmyadmin  http://localhost/phpMyAdmin  http://localhost/mysqladmin  Consideraciones  Iniciar Apache  blowfish_secret  php-mcrypt  libmcrypt Octubre 2009 1. Introducción a MySQL 9
  • 10. 6. Ejercicios 1. Lanzar los test de mysql 2. Comprobar la conexión con root 3. Mostrar las bases de datos 4. Mostrar las tablas de test 5. Mostrar las tablas de mysql 6. Mostrar la tabla user de mysql 7. Cargar el benchmark Winsconsin 8. Instalar phpMyAdmin resolviendo los avisos pertinentes 9. Consultar la estructura de las tablas Octubre 2009 1. Introducción a MySQL 10
  • 11. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 11
  • 12. II. Conceptos Básicos 1. Conexión al Servidor 2. Consultas SQL 3. Tipos de Datos 4. Tablas 5. Índices 6. Ejercicios Octubre 2009 2. Conceptos Básicos 12
  • 13. 1. Conexión al Servidor  Se requiere  Un cliente (mysql)  Conexión de Red  Un usuario con permisos  Comprobar la conexión  mysqladmin version  Lanzar el cliente  mysql –u <usuario> -p [-h host] [bd]  Obtener información  show  Abrir Base de Datos  connect <bd> Octubre 2009 2. Conceptos Básicos 13
  • 14. 2. Consultas SQL  SELECT-FROM-WHERE  INSERT-INTO-VALUES  UPDATE-SET-WHERE  DELETE-WHERE  CREATE TABLE  DROP TABLE  ALTER TABLE Octubre 2009 2. Conceptos Básicos 14
  • 15. 3. Tipos de Datos  CHAR (0-255)  VARCHAR (0-255)  BINARY  VARBINARY  BLOB  TEXT  ENUM (‘a’, ‘b’, ‘c’)  SET (‘a’, ‘b’, ‘c’)  INT  FLOAT (TAMAÑO, DECIMALES)  DOUBLE (TAMAÑO, DECIMALES)  DECIMAL (TAMAÑO, DECIMALES)  DATETIME  TIMESTAMP Octubre 2009 2. Conceptos Básicos 15
  • 16. 4. Tablas  Conjunto conexo de información del mismo tipo (campos) cuya unidad elemental de información es el registro  information_schema.tables  Operaciones  Crear/Borrar  Modificar  Tipos de tabla (show engines;)  MyISAM  InnoDB  MEMORY  MERGE Octubre 2009 2. Conceptos Básicos 16
  • 17. 4. Tablas  MyISAM  Index Sequential Access Method  Recomendadas cuando los datos cambian poco  Estáticas  No tiene campos variables  Más rápido pero más pesado  Dinámicas  Cada registro ocupa distinto tamaño  Se indica el tamaño delante  Comprimidas  De sólo lectura  Muy rápido y ocupa muy poco  Aconsejable si se usan dispositivos lentos Octubre 2009 2. Conceptos Básicos 17
  • 18. 4. Tablas  InnoDB  Transaccionales  Bloquean el registro modificado  Cumplen ACID (Atomic, Consistent, Isolated, Durable)  MEMORY  Almacenadas en RAM  ENGINE = MEMORY  MERGE  Unión de varias tablas MyISAM  Divide y vencerás  ENGINE = MERGE  UNION = (a, b, c) Octubre 2009 2. Conceptos Básicos 18
  • 19. 5. Índices  Estructura interna para encontrar uno o más registros de forma rápida  Aplicables a campos de filtrado  Permiten:  Ordenar  Acceso directo  Unión de tablas  Desventajas:  Espacio almacenado  Coste de actualización  Modificadores:  UNIQUE INDEX  ADD/DROP INDEX Octubre 2009 2. Conceptos Básicos 19
  • 20. 6. Ejercicios 1. Crear una tabla Películas de tipo InnoDB en test con título, director y soporte (DivX, DVD, BluRay) 2. Añadirle una columna id entera con auto-incremento 3. Convertir esa columna en clave primaria 4. Crear una tabla Soportes de tipo MyISAM en test 5. Modificar la tabla Películas para que el campo soporte sea clave foránea Octubre 2009 2. Conceptos Básicos 20
  • 21. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 21
  • 22. III. Administración de la BD 1. Gestión de Usuarios 2. Copias de Seguridad 3. Logs 4. Actualizaciones 5. Ejercicios Octubre 2009 3. Administración de la BD 22
  • 23. 1. Gestión de Usuarios  Asignar privilegios para ejecutar tareas a usuarios con permiso de acceso  Evitar que se modifiquen tablas críticas  Utilizar root es una mala práctica  No utilizar contraseña también  Tipos de usuario según permisos  Propietario  Clientes  Consumidores/Web  Tareas  CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE, INDEX, GRANT OPTION , ALL Octubre 2009 3. Administración de la BD 23
  • 24. 1. Gestión de Usuarios  Tablas information_schema.*_privileges  Tablas mysql.db, user y *_priv  GRANT  <TAREA> [, <TAREA>, …]  ON {tablas | esquema | *.* }  TO <usuario[@host]>  [IDENTIFIED BY <contraseña>]  [WITH GRANT OPTION]  REVOKE-ON-FROM  FLUSH PRIVILEGES; Octubre 2009 3. Administración de la BD 24
  • 25. 1. Gestión de Usuarios  mysqladmin –u <usuario> password “x”  SET PASSWORD [FOR usuario@host] = PASSWORD(“contraseña”)  DROP USER <usuario>  CREATE USER <usuario>  GRANT USAGE ON *.* TO <usuario>  mysqld_safe --skip-grant-tables  OJO! Propagar los cambios  OJO! Apagar el servidor MySQL Octubre 2009 3. Administración de la BD 25
  • 26. 1. Gestión de Usuarios  Ejercicios  Añadir una clave al usuario root mediante mysqladmin  Cambiar la clave mediante SET y GRANT  Propagar los cambios  Salir y entrar sin contraseña  Crear un usuario alumno con permisos de cliente sobre test  Realizar consultas de prueba  Revocar los permisos de modificación bajándole a consumidor Octubre 2009 3. Administración de la BD 26
  • 27. 1. Gestión de Usuarios  Otros privilegios  FILE  PROCESS  RELOAD  SHUTDOWN  Modificadores  * para indicar bd, tabla o global  % para indicar máquina cliente  Permisos sobre columnas  Se indican entre paréntesis  GRANT UPDATE (c1, c2, c3) ON … Octubre 2009 3. Administración de la BD 27
  • 28. 1. Gestión de Usuarios  Recursos  Se puede restringir el número máximo de recursos consumibles por un usuario  max_questions consultas/hora  max_updates en una hora  max_connections conexiones/hora  max_user_connections simultáneas  UPDATE mysql.user SET … Octubre 2009 3. Administración de la BD 28
  • 29. 2. Copias de Seguridad  mysqladmin variables  Muestra los directorios importantes  basedir /usr/  bdb_home /var/lib/mysql/  Opciones para copias de seguridad  Mantener copia de los archivos de estos directorios  mysqldump bd [tablas] Octubre 2009 3. Administración de la BD 29
  • 30. 2. Copias de Seguridad  MySQLdump vuelca la BD como sentencias SQL  Recogerlas en un fichero portable .sql  Para BBDD grandes conviene comprimir los datos  mysqldump db | gzip > backup-fecha.sql  Modificadores  --add-drop-database  --add-drop-table  --lock-tables  --opt  --single-transaction Octubre 2009 3. Administración de la BD 30
  • 31. 2. Copias de Seguridad  Recuperación  Se pueden recuperar hasta los privilegios  Habrá que arrancar sin tablas grant  mysql db < backup-fecha.sql  Automatización  Crear un bash que genere la copia  Añadir el trabajo a cron para que lo ejecute a una hora determinada  crontab <fichero>  Minuto, Hora, Día, Mes, Año, DiaSem, tarea  webmin Octubre 2009 3. Administración de la BD 31
  • 32. 3. Logs  MySQL mantiene diferentes registros de actividad (logs)  Consultas: para conexiones y consultas  Arrancar mysqld con --log [=ruta]  Errores: para todo tipo de errores  /var/lib/mysql/maquina.err  Activar --log-error para mysqld  Binario: para instrucciones de alteración  --log-bin [=ruta]  mysqlbinlog fichero  Lento: para consultas muy lentas  --log-slow-queries Octubre 2009 3. Administración de la BD 32
  • 33. 3. Logs  Logs en tablas  MYSQL.GENERAL_LOG  MYSQL.SLOW_LOG  Solo están disponibles a partir de la versión 5.1.6  http://dev.mysql.com/downloads/  Server  Client  Problemas  Incompatibilidades  Demonio diferente Octubre 2009 3. Administración de la BD 33
  • 34. 4. Actualizaciones  Las actualizaciones del servidor añaden tablas nuevas, reparan bugs y mejoran el rendimiento  Siempre instalar versiones estables  http://www.mysql.com  Conviene  Para el servidor  Hacer una copia de seguridad  Copia de seguridad de ficheros de configuración  mysql_upgrade -p Octubre 2009 3. Administración de la BD 34
  • 35. 5. Ejercicios 1. Crear usuarios propietario, cliente y consumidor para la bd test 2. Comprobar los privilegios en USER_PRIVILEGES 3. Realizar una copia de seguridad de test y restaurarla sobre nuevo-test 4. Comprobar las últimas versiones de MySQL y la fecha de la 5.0.45 incluida en RHEL 5.3 5. Activar los logs y comprobar los ficheros generados Octubre 2009 3. Administración de la BD 35
  • 36. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 36
  • 37. IV. Herramientas de MySQL 1. MySQLadmin 2. Utilidades ISAM 3. Otras Utilidades 4. Herramientas mysql-gui 5. Ejercicios Octubre 2009 4. Herramientas MySQL 37
  • 38. 1. MySQLadmin  Permite controlar  El funcionamiento del servidor  La asignación de contraseñas  La creación y borrado de instancias  mysqladmin comando  Modificadores:  -f fuerza la operación  -r muestra valores previos  -i ejecuta modo ralentizado  -w espera si no hay conexión Octubre 2009 4. Herramientas MySQL 38
  • 39. 1. MySQLadmin  Comandos:  create <bd> crea una instancia  drop <bd> elimina una instancia  ping estado del servidor  status estado del servidor  extended-status estado del servidor  flush-privileges recarga privilegios  flush-tables vacía caché de tablas  flush-logs vacía caché de logs  reload recarga privilegios  refresh vacía cachés y recarga logs  processlist lista hilos en el servidor  kill <idProceso> mata hilos en el servidor  shutdown apaga el servidor Octubre 2009 4. Herramientas MySQL 39
  • 40. 2. Utilidades ISAM  MySQLhotcopy  Realiza copias de los ficheros de BD  Debe lanzarse en el directorio de datos  /var/lib/mysql  Sólo aplicable a tablas MyISAM  mysqlhotcopy <bd> [ruta/dir/copia]  Admite expresiones regulares  mysqlhotcopy <bd>./expresion/  Modificadores:  -n modo de prueba  --allowold si existe renombra _old  --keepold mantiene los _old  --noindices no copia los índices Octubre 2009 4. Herramientas MySQL 40
  • 41. 2. Utilidades ISAM  MyISAMpack  Permite obtener tablas MyISAM comprimidas  Hasta 70% de reducción  Acceso rápido a registros (sólo lectura)  myisampack tabla  Modificadores:  -b realiza un backup de seguridad  -t testea el empaquetamiento  -w espera si la tabla está en uso  -f fuerza el empaquetamiento  myisamchk --unpack Octubre 2009 4. Herramientas MySQL 41
  • 42. 2. Utilidades ISAM  MyISAMchk  Verifica el estado de las tablas MyISAM  Se puede indicar una o varias tablas  Admite comodines (*, ?)  myisamchk <ruta>/<tabla>.MYI  Hacer copia de los ficheros antes de lanzar MyISAMchk por si empeoramos  Modificadores:  -a análisis de distribución de claves  -b backup de la tabla (tabla.old)  -F checkeo rápido para tablas no cerradas  -e checkeo extendido (riguroso)  -m checkeo extendigo rápido (99% eficiente) Octubre 2009 4. Herramientas MySQL 42
  • 43. 2. Utilidades ISAM  MyISAMchk  Más modificadores:  -U marca las tablas como defectuosas  -T modo de solo lectura  -d muestra información de la tabla  -i muestra estadísticas de la tabla  Una vez detectados errores se puede intentar recuperar  myisamchk --recover --quick <tabla>  myisamchk --recover <tabla>  myisamchk --safe-recover <tabla>  Conviene bloquear la tabla durante el proceso  LOCK TABLE <tabla> READ;  FLUSH TABLES; Octubre 2009 4. Herramientas MySQL 43
  • 44. 3. Otras Utilidades  MySQLcheck  Similar a MyISAMchk pero con mysqld levantado  Utiliza comandos SQL  Opera para tablas de una bd, varias bbdd o todas las bbdd  --databases <bd1> [<bd2> …]  --all-databases  Se puede renombrar  mysqlrepair  mysqlanalyze  mysqloptimize  --auto-repair Octubre 2009 4. Herramientas MySQL 44
  • 45. 3. Otras Utilidades  MySQLshow  Muestra información de las instancias, tablas, columnas e índices de MySQL  Se puede solicitar para una instancia, tabla o columna concretas  Por defecto muestra todas las instancias del servidor  mysqlshow [bd [tabla [columna]]]  Modificadores:  -i muestra información del estado  -k muestra las claves de cada tabla Octubre 2009 4. Herramientas MySQL 45
  • 46. 3. Otras Utilidades  MySQLbinlog  Permite examinar ficheros de log binarios  mysqlbinlog <fichero>  Modificadores:  -d <bd> carga sólo la instancia indicada  -o <N> ignora las N primeras líneas  -r <file> vuelca a un fichero  -s formato corto  --start-datetime=“YYYY-MM-DD hh:mm:ss”  --stop-datetime=“YYYY-MM-DD hh:mm:ss” Octubre 2009 4. Herramientas MySQL 46
  • 47. 3. Otras Utilidades  MySQLimport  Permite cargar datos de ficheros de texto  mysqlimport <bd> <fichero>  Crea una tabla con el nombre del fichero (sin extensión)  Modificadores:  -c indica columnas concretas a importar  -f fuerza el proceso aunque haya errores  -r reemplaza filas si hay claves duplicadas  -i mantiene filas si se intentan duplicar  -l bloquea las tablas para escritura Octubre 2009 4. Herramientas MySQL 47
  • 48. 4. Herramientas mysql-gui  MySQL Administrator  Administración de servidores, esquemas, tablas y usuarios de MySQL  Contenidos:  Información de servidor  Control de servicios  Parámetros de arranque  Administración de usuarios  Conexiones de servidor  Monitor  Logs  Backups  Replicación  Esquemas/Catálogos Octubre 2009 4. Herramientas MySQL 48
  • 49. 4. Herramientas mysql-gui  MySQL Query Browser  Crear, ejecutar, y optimizar consultas SQL  De manera “gráfica”  Permite:  Buscar y editar los registros que nos interesen  Crear instancias, tablas, vistas, …  Acceso a parámetros, sintaxis, funciones, transacciones, …  Creación, edición y depuración de scripts  Exportación de resultados Octubre 2009 4. Herramientas MySQL 49
  • 50. 4. Herramientas mysql-gui  MySQL Migration Toolkit  Asistencia para la migración de esquemas y datos desde otros SGBD relacionales a MySQL  SQL Server  Oracle  Access  MySQL  Sybase  JDBC  Herramienta texto  Herramienta terminal Octubre 2009 4. Herramientas MySQL 50
  • 51. 5. Ejercicios 1. Crear una instancia “nueva” con mysqladmin 2. Importar la copia de seguridad de test 3. Crear un fichero csv provincias con el C.P. y nombre de cada provincia de CLM 4. Crear una tabla provincias en “nueva” e importar el csv 5. Comprimir la tabla provincias 6. Crear un usuario junta con permisos de propietario sobre la instancia “nueva” 7. Repetir los ejercicios 3 y 4 con una base de datos Access Octubre 2009 4. Herramientas MySQL 51
  • 52. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 52
  • 53. V. Características Avanzadas 1. Optimización 2. Plan de Ejecución 3. Análisis de Tablas 4. Replicación 5. Ejercicios Octubre 2009 5. Características Avanzadas 53
  • 54. 1. Optimización  Maximizar la eficiencia de nuestro SGBD  Velocidad y número de usuarios simultáneos  Índices  Mejoran los tiempos de acceso  Ocupan espacio  Coste de recalcular  Tipos: INDEX, PRIMARY, UNIQUE, FULLTEXT  Servidor  Procesador, acceso a disco, memoria, …  Activar caché, DMA, … Octubre 2009 5. Características Avanzadas 54
  • 55. 1. Optimización  Pruebas de rendimiento  mysqlslap  Lanza una consulta repetidas veces y simultáneamente (simular carga)  Modificadores:  --concurrency nº de conexiones  --iterations nº de repeticiones  --query consulta/script a probar  --auto-generate-sql Octubre 2009 5. Características Avanzadas 55
  • 56. 2. Plan de Ejecución  Operaciones del servidor que permiten recuperar los datos de una consulta  EXPLAIN SELECT …  id  select_type tipo de consulta  table tabla asociada  type tipo de combinación  possible_keys índices utilizables  key índice utilizado  key_len tamaño del índice  ref campo asociado al índice  rows filas a recuperar  extra información extra Octubre 2009 5. Características Avanzadas 56
  • 57. 2. Plan de Ejecución  Combinaciones  ALL recorrer todas las filas  index recorrer todo el índice  ref por clave foránea  eq_ref por clave foránea indexada  Información extra  Using where utiliza where  Using index utiliza índices  Using temporary crea tablas temporales  Using filesort requiere ordenación Octubre 2009 5. Características Avanzadas 57
  • 58. 3. Análisis de Tablas  Los índices pierden eficacia por las constantes modificaciones  Aparecen huecos en los registros  SHOW INDEX FROM <tabla>;  Muestra los índices de una tabla  ANALYZE TABLE <tabla>;  Analiza y reordena los índices  OPTIMIZE TABLE <tabla>;  Reordena los datos para eliminar huecos Octubre 2009 5. Características Avanzadas 58
  • 59. 4. Replicación  Transportar datos entre dos o más servidores permitiendo que estén almacenados en más de un sitio, y aumentando la disponibilidad y el rendimiento de las consultas  Modelo de replicación:  publicador, suscriptor, distribuidor, publicación, artículo y suscripción  Tipos básicos de replicación:  De instantáneas  Unidireccional  Transaccional  Por mezcla Octubre 2009 5. Características Avanzadas 59
  • 60. 4. Replicación  MySQL soporta replicación asíncrona unidireccional  Un servidor actúa como maestro y uno o más actúan como esclavos  El servidor maestro escribe actualizaciones en fichero de log binario  Mantiene un índice para rastrear los logs  Cuando un esclavo se conecta al maestro, informa de la última posición que ha leído y recibe cualquier actualización desde entonces  LOAD TABLE FROM MASTER;  LOAD DATA FROM MASTER; Octubre 2009 5. Características Avanzadas 60
  • 61. 4. Replicación 1. Iniciar el maestro con logs binarios 2. Crear una cuenta en el servidor maestro para la replicación  GRANT REPLICATION SLAVE, SUPER, RELOAD ON … 3. Realizar volcado y bloqueo de tablas  FLUSH TABLES WITH READ LOCK; 4. Crear un backup de los datos 5. Desbloquear las tablas  UNLOCK TABLES; 6. Detener el maestro  mysqladmin shudown 7. Añadir a /etc/my.cnf  [mysqld]  server-id=1 Octubre 2009 5. Características Avanzadas 61
  • 62. 4. Replicación 8. Parar cada servidor esclavo 9. Añadir a cada /etc/my.cnf  server-id=i con distintos i > 1 10. Arrancar cada esclavo 1. Si se hizo backup de logs binarios copiarlos al directorio de datos antes 11. Recuperar la copia de seguridad en los esclavos 12. Ejecutar en cada esclavo  CHANGE MASTER TO MASTER_HOST='nombre_host_maestro', MASTER_USER='usuario_replicacion', MASTER_PASSWORD='password_replicacion', MASTER_LOG_FILE='fichero de log guardado', MASTER_LOG_POS=posición en el log; 13. Iniciar el flujo de esclavo  START SLAVE; Octubre 2009 5. Características Avanzadas 62
  • 63. 5. Ejercicios 1. Comprobar el plan de ejecución de select * from tenk1 2. Mejorar la consulta si se puede 3. Añadir los índices pertinentes para mejorar la consulta select * from tenk1 where string1 like ‘%AAA%’ 4. Buscar los registros de tenk1 con string4= ‘OOOOxx’ 5. Visualizar el plan de ejecución 6. Mejorar la consulta si se puede 7. Eliminar esos registros 8. Analizar los cambios en la tabla 9. Compactar la tabla Octubre 2009 5. Características Avanzadas 63
  • 64. Contenidos I. Introducción a MySQL II. Conceptos Básicos III. Administración de la BD IV. Herramientas de MySQL V. Características Avanzadas VI. El Lenguaje MySQL Octubre 2009 Administración MySQL 64
  • 65. VI. El Lenguaje MySQL 1. Sentencias DML 2. Sentencias DLL 3. Sentencias Auxiliares 4. Operadores y Funciones 5. Transacciones 6. Privilegios 7. Otras Sentencias 8. Ejercicios Octubre 2009 6. El Lenguaje MySQL 65
  • 66. 1. Sentencias DML  Data Manipulation Language  Consulta y manipulación de datos  SELECT  FROM-WHERE-GROUP BY-ORDER BY  FROM-JOIN-ON  FROM-UNION-SELECT  INSERT  INTO-() VALUES ()  INTO-SELECT  UPDATE  SET-WHERE  DELETE  FROM-WHERE Octubre 2009 6. El Lenguaje MySQL 66
  • 67. 1. Sentencias DML  LOAD DATA INFILE <fichero> [IGNORE | REPLACE] INTO TABLE <tabla>  Carga datos externos en una tabla existente  Admite opciones de importación a continuación  FIELDS  TERMINATED BY <separador>  ENCLOSED BY <carácter>  ESCAPED BY <carácter>  LINES TERMINATED BY <separador>  IGNORE <n> LINES Octubre 2009 6. El Lenguaje MySQL 67
  • 68. 2. Sentencias DDL  Data Definition Language  Esquemas y estructuras de tablas en el SGBD  CREATE  DATABASE [IF NOT EXIST] <bd>;  TABLE <t>(<campo> <tipo> <otros>,…);  INDEX <i> ON <tabla> (<columnas>);  ALTER TABLE  ADD <campo> <tipo>;  ADD CONSTRAINT <restricción>;  ADD INDEX <i> (<columnas>);  MODIFIY <campo> <tipo>;  RENAME AS <nueva>;  DROP  DATABASE [IF EXIST] <bd>;  TABLE [IF EXIST] <bd>;  INDEX <i> ON <tabla>; Octubre 2009 6. El Lenguaje MySQL 68
  • 69. 3. Construcciones Auxiliares  SELECT  DISTINCT  AS <alias>  WHERE  BETWEEN <inf> AND <sup>  IN (<conjunto de valores>)  LIKE ‘<patrón>’  IS NULL  IS NOT NULL  CONSTRAINT  CHECK (<condicion>)  PRIMARY KEY (<campo>)  FOREIGN KEY (<campo>) REFERENCES <tabla> (<campo>) Octubre 2009 6. El Lenguaje MySQL 69
  • 70. 4. Operadores y Funciones  Operadores  +, -, *, /, %, AND, OR, NOT, <, >, =, <>, <=>  Funciones de cadenas  Concat(cadena1, cadena2, …)  Locate(subcadena, cadena, inicio)  Reverse(cadena)  Substring(cadena, inicio, fin)  Funciones Aritméticas  Abs(<campo>)  Pi()  Sqrt(<campo>)  Round(<campo>) Octubre 2009 6. El Lenguaje MySQL 70
  • 71. 4. Operadores y Funciones  Funciones estadísticas  Avg(<campo>)  Count(<campo>)  Max(<campo>)  Min(<campo>)  Sum(<campo>)  Funciones de fecha y hora  Dayname(<fecha>)  Dayofmonth(<fecha>)  Hour (<fecha>)  Current_date() Octubre 2009 6. El Lenguaje MySQL 71
  • 72. 5. Transacciones  START TRANSACTION | BEGIN  <sentencias SQL>  SAVEPOINT <punto de guarda>  COMMIT  <sentencias SQL>  ROLLBACK  <sentencias SQL>  TO SAVEPOINT <punto de guarda>  OJO!! Las DDL no se pueden deshacer  Alternativa:  LOCK TABLES  <sentencias SQL>  UNLOCK TABLES Octubre 2009 6. El Lenguaje MySQL 72
  • 73. 6. Privilegios  DCL (Data Control Language)  GRANT  ON <elemento>  TO <usuario>  IDENTIFIED BY <password>  REVOKE  ON <elemento>  FROM <usuario>  DENY  ON <elemento>  TO <usuario> Octubre 2009 6. El Lenguaje MySQL 73
  • 74. 7. Otras Sentencias  ANALYZE TABLE  OPTIMIZE TABLE  SHOW  DESCRIBE  EXPLAIN  LOCK TABLE(S)  UNLOCK TABLE(S) Octubre 2009 6. El Lenguaje MySQL 74