Your SlideShare is downloading. ×
0
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
My SQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

My SQL

607

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
607
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Administración MySQLÓliver Centeno ÁlvarezOctubre 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 MySQLOctubre 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 MySQLOctubre 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. EjerciciosOctubre 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  TransaccionalidadOctubre 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  LAMPOctubre 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ónOctubre 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  libmcryptOctubre 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 tablasOctubre 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 MySQLOctubre 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. EjerciciosOctubre 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 TABLEOctubre 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  TIMESTAMPOctubre 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  MERGEOctubre 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 lentosOctubre 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 INDEXOctubre 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áneaOctubre 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 MySQLOctubre 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. EjerciciosOctubre 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 , ALLOctubre 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 MySQLOctubre 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 consumidorOctubre 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-transactionOctubre 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  webminOctubre 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-queriesOctubre 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 diferenteOctubre 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 -pOctubre 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 generadosOctubre 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 MySQLOctubre 2009 Administración MySQL 36
  • 37. IV. Herramientas de MySQL 1. MySQLadmin 2. Utilidades ISAM 3. Otras Utilidades 4. Herramientas mysql-gui 5. EjerciciosOctubre 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ónOctubre 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 servidorOctubre 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 índicesOctubre 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 --unpackOctubre 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-repairOctubre 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 tablaOctubre 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 escrituraOctubre 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álogosOctubre 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 resultadosOctubre 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 terminalOctubre 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 AccessOctubre 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 MySQLOctubre 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. EjerciciosOctubre 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-sqlOctubre 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 extraOctubre 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ónOctubre 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 huecosOctubre 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 mezclaOctubre 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=1Octubre 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 tablaOctubre 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 MySQLOctubre 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. EjerciciosOctubre 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-WHEREOctubre 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> LINESOctubre 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 TABLESOctubre 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
  • 75. Muchas GraciasÓliver Centeno Álvarez 75

×