• Like
Introduccion my sql
Upcoming SlideShare
Loading in...5
×

Introduccion my sql

  • 613 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
613
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
28
Comments
0
Likes
0

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. Introducción a MySQL Introducción a MySQL En este artículo se tratan diversos temas que tienen que ver con el funcionamiento básico del servidor MySQL www.mysql-hispano.org Fecha de creación: 29 May del 2003 - 12:39 pm
  • 2. Introducción a MySQLEste artículo es el primero de toda una serie que ofrecerá MySQL AB con el fin de proporcionar al lectorinformación valiosa sobre el servidor de bases de datos MySQL. Aunque en artículos futuros se tratarántemas más avanzados tales como replicación, ODBC y optimización, se pensó que era prudente si elprimer tutorial comenzaba por los conceptos básicos. Por lo tanto, el objetivo de este artículo esinformar al lector sobre varios temas relacionados con el funcionamiento básico de MySQL. Unasinopsis de los temas que serán cubiertos se muestra a continuación en la Tabla de contenidos.Las suposicionesEn este punto, se asume que el lector ha instalado exitosamente el servidor de bases de datos MySQL.Si áun no se ha instalado MySQL, por favor tomarse un poco de tiempo para revisar la informaciónproporcionada en la sección de instalación de la documentación de MySQL. Se asume también que labase de datos de Mysql ha sido creada (usando mysql_install_db), y que el servidor MySQL ha sidoinicializado usando safe_mysqld. Si esto no ha sido realizado, tomarse un momento para leer la Sección4.16, "Post-Instalación, configuración y pruebas" de la documentación de MySQL.Se asume también que el lector tiene una comprensión básica de la sintaxis de SQL (el LenguajeEstructurado de Consulta). Para los lectores nuevos en el mundo de SQL, las ligas siguientes hacenreferencia a documentos particularmente útiles para conocer SQL: » Curso de SQL » Manual de SQL » Tutorial de SQLTabla de contenidos » Bien, he instalado MySQL. ¿Ahora Qué? » El archivo de configuración de MySQL: my.cnf » Las tablas de privilegios de MySQL » Conectándose al servidor MySQL por primera vez » Salir y conectarse de nuevo al monitor de MySQL » ¡Cuidado con esa contraseña! » Seleccionando una base de datos » mysqladmin » Asegurando una base de datos www.mysql-hispano.org 1 of 13
  • 3. Introducción a MySQL » El comando GRANT » El comando REVOKE » Respaldos de bases de datos » mysqldump » mysqlhotcopy » ConclusionesNotas importantes* Este documento está basado en el artículo original en inglés An Introduction to MySQL, de W. J.Gilmore, más no es una traducción literal del mismo.* En algunos casos se omitió la traducción de palabras como "host", "root", "shell", ya que se pensó quetienen un mayor significado si se leen en inglés.* El artículo lleva una estructura secuencial de los temas, por lo que se recomienda que se lea de estaforma para una mayor comprensión.Bien, he instalado MySQL. ¿Ahora Qué?El propósito de este tutorial es informar a los nuevos usuarios de MySQL sobre varios aspectos clave deeste maravilloso servidor de bases de datos. Se introducirán conceptos que van desde la funcionalidadgeneral del servidor, la seguridad, la administración de usuarios y privilegios, el trabajo con bases dedatos y tablas, y los respaldos de las bases de datos. Mientras que el lector probablemente encuentremucho de este material fácil de entender, hay que tener presente que estos conceptos son una partefundamental para trabajar eficiente y apropiadamente con el servidor MySQL, además de queresultarán muy útiles para entender aspectos más avanzados que se discutirán en los posterioresartículos. Por lo tanto se sugiere al lector que se tome el tiempo no sólo para leer el tutorial, sino tambiénpara seguir los pasos descritos en los ejemplos para experimentar con su propia instalación de MySQL.El archivo de configuración de MySQL: my.cnfEs muy probable que la primera tarea que un administrador querrá emprender es la configuraciónapropiada del archivo de configuración de MySQL. Este archivo, denominado my.cnf, contiene informaciónsobre las opciones de inicio tanto para el servidor, como para los clientes. La configuración de estearchivo influye de alguna manera para manejar la optimización de MySQL, la adecuación de variosbúffers de memoria y algunas otras opciones igualmente importantes.Resulta muy interesante que el alcance de este archivo se pueda fijar de acuerdo a su ubicación. Lasopciones se considerarán globales para todos los servidores MySQL si el archivo my.cnf está en eldirectorio /etc. Serán globales para un servidor en específico si el archivo se localiza en el directorio enel cual se almacenan las bases de datos (seguramente /usr/local/mysql/data o /var/lib/mysql). www.mysql-hispano.org 2 of 13
  • 4. Introducción a MySQLFinalmente, su alcance puede ser limitado para un usuario en específico si el archivo se localiza en eldirectorio del usuario (~/.my.cnf). Se debe tener presente que aunque MySQL localice un archivo my.cnfen el directorio /etc/ (global para todos los servidores MySQL en una máquina), se continuará labúsqueda para un archivo específico de servidor, y entonces un archivo específico de usuario. Se puedepensar en las opciones de configuración finales como el resultado de evaluar los archivos /etc/my.cnf,mysql-data-dir/my.cnf, y ~/.my.cnf .Con el propósito de ayudar a los administradores en la apropiada configuración de este archivo, losdesarrolladores de MySQL han incluido cuatro archivos de configuración de ejemplo junto con ladistribución. Sus nombres son my-huge-cnf.sh, my-large.cnf.sh, my-medium.cnf.sh, y my-small.cnf.sh, yen cada uno de ellos se incluyen opciones de configuración de acuerdo con la disponibilidad de recursoscon que se cuente.Lecturas adicionales en la documentación de MySQL (en inglés):4.16.5 Option filesLas tablas de privilegios de MySQLAntes de entrar en detalle con los ejemplos que consitituyen este tutorial, se hará una breveintroducción de uno de los aspectos más importantes (y muchas veces mal entendido!) del servidor deMySQL; el mecanismo mediante el cuál MySQL asegura sus datos y la integridad: las tablas deprivilegios de MySQL. Las tablas de privilegios de MySQL son responsables de la autenticación deusuarios cuando accesan al servidor MySQL, y la subsecuente asociación de un conjunto de privilegiosuna vez que han conseguido acceso al servidor. Este conjunto de privilegios determina lo que unusuario es capaz de hacer mientras está conectado al servidorMySQL, controlando las actividades delusuario en todo el servidor, en una base de datos, en una tabla o incluso en una columna de una tabla.Por ejemplo, un administrador podría otorgar privilegios a un usuario para conectarse a una base dedatos específica de MySQL, y denegarle el acceso a todas las demás bases de datos. Además, a esemismo usuario pueden otorgarse sólo ciertos privilegios mientras está conectado a esa base de datos,por ejemplo, la selección, la inserción, y la actualización. Asociado con sólo estos tres privilegios, a esteusuario le sería negado cualquier intento de borrar los datos, puesto que a este usuario no ha sidootorgado el privilegio de eliminar datos.Aunque una introducción más a fondo de las tablas de privilegios está fuera del alcance de esteartículo, es importante que el lector entienda el papel tan importante que juegan estas tablas al asegurarun servidor MySQL. Al trabajar en los ejemplos a través del resto de este artículo, se debe tenerpresente que las tablas de privilegios influyen en cada consulta y comando que se ejecuta,asegurándose que el usuario que ejecuta dichos comandos o consultas tiene los permisos apropiadospara hacerlo. También es bastante recomendado que el lector se tome algún tiempo para revisar lasligas mostradas a continuación, ya que cada uno de ellos describe en mayor detalle los mecanismosfundamentales de estas tablas.Lecturas adicionales en la documentación de MySQL (en inglés):6.9 How the Privilege System Works6.2 How to Make MySQL Secure Against Crackers6.14 Adding New User Privileges to MySQL www.mysql-hispano.org 3 of 13
  • 5. Introducción a MySQLConectándose a MySQL por primera vezEl programa cliente de MySQL, también conocido como el monitor de MySQL, es una interfase que lepermite a un usuario conectarse a un servidor MySQL, crear y modificar bases de datos, y ejecutarconsultas y ver los resultados. Este programa es iniciado ejecutando el comando mysql en el promptdel sistema. En general, la sintaxis de este comando es: shell> mysql [opciones] [base de datos]En donde [opciones] pueden ser una o más opciones usadas en conjunción con el programa mysql, y[base de datos] es el nombre de la base de datos sobre la que se va a trabajar. Puesto que se asumeque es la primera vez que se usa el monitor MySQL, debe tomarse un momento para revisar todas lasopciones permitidas al ejecutar el siguiente comando: shell> mysql --helpÉste produce una larga lista de opciones que se pueden usar en conjunción con el programa mysql. Por elmomento, sin embargo, la meta principal es simplemente conectarse al servidor de bases de datos. Porlo tanto, hay que ejecutar el siguiente comando: shell> mysql -u rootDeberá de aparecer algo como los siguiente: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 to server version: 3.23.28-gamma-log Type help; or h for help. Type c to clear the buffer mysql>Felicidades, ahora se encuentra conectado al monitor de MySQL como el usuario root (eltodopoderoso). La primera acción oficial como el líder supremo del servidor de bases de datos MySQL esasegurarse que nadie más pueda declararse en esta posición, haciendo esto posible cuando alguiénquiera conectarse como root al servidor deba de proporcionar una contraseña. Hay que cambiar lacontraseña de su valor actual (un valor nulo), a algo difícil de adivinar usando el siguiente comando: mysql>SET PASSWORD FOR root@localhost = PASSWORD(la_palabra_secreta);El "root", que es el nombre de usuario, y "localhost", que es el nombre del host, constituyen un usuarioúnico en MySQL. Para aquellos lectores no familiarizado con la terminología de redes, localhost es unnombre usado para referirse al servidor local; en este caso, el servidor sobre el cuál reside MySQL.Por lo tanto, al escribir root@localhost, este comando le dice al servidor MySQL que ponga lacontraseña para un usuario denominado root que se conectará específicamente del servidor local(localhost). www.mysql-hispano.org 4 of 13
  • 6. Introducción a MySQLMás específicamente, este comando cambiará la contraseña actualizando lo que se conocecomúnmente como la tabla de privilegios de MySQL. Estas tablas, que se encuentran en la base dedatos llamada mysql, contienen información con respecto a las capacidades de conexión y uso de todoslos usuarios que intentan usar el servidor de base de datos MySQL. Más específicamente, estecomando actualiza la tabla user, actualizando el campo password de la fila en la cual el valor de campouser es root. El campo password se actualizará con el valor encriptado de la cadena que se pasa comoparámetro a la función PASSWORD().Por supuesto, no olvidar esta contraseña. Puesto que ésta es almacena en un texto encriptado dentrode la base de datos, no puede ser recuperada fácilmente en el caso de que sea olvidada.Hay también un método alternativo para actualizar la contraseña: shell> mysqladmin -u root password la_palabra_secretaEste comando tiene el mismo efecto que el comando introducido previamente.Salir y conectarse de nuevo al monitor MySQLPara verificar que la nueva contraseña funciona, salir del monitor MySQL usando el siguiente comando: mysql> qEsto nos regresa al shell del sistema. Ahora hay que volver al monitor, pero esta vez usando elsiguiente comando: shell> mysql -u root -pEl hacer esto resulta en un prompt para proporcionar la contraseña del usuario root, como se muestraa continuación: Enter password:En este punto, debe de suministrarse la contraseña que se asignó al usuario root previamente.Asumiendo que ésta ha sido proporcionada correctamente, aparecerá el saludo estándar de MySQL,y root será conectado al servidor MySQL una vez más.¡Cuidado con esa contraseña!Muchos lectores pueden estar tentados a incluir la contraseña en la misma línea de comandos, comosigue: shell> mysql -u root -pla_palabra_secreta www.mysql-hispano.org 5 of 13
  • 7. Introducción a MySQL¡No hacer esto!. ¡No sólo es un método sumamente inseguro para proporcionar la contraseña, sino queno producirá los resultados esperados!. Es inseguro porque permitirá a cualquier persona observar lacontraseña en este formato de texto plano, pero también porque cualquier usuario puede usar elcomando ps de Unix para ver los comandos que se están ejecutando y ver allí la contraseña en suformato de texto plano.Quizás sea una buena idea almacenar la contraseña en nuestro archivo de configuración my.cnf,localizado en~/.my.cnf . Si usted no sabe lo que es este archivo, lea por favor la sección previa titulada Elarchivo de configuración de MySQL.Seleccionado una base de datosPor supuesto, simplemente conectarse al servidor MySQL no servirá de mucho. Seguramente sequerrá seleccionar una base de datos para trabajar sobre con ella. Esto se puede hacer de dosmaneras:Una de ellas es incluir el nombre de la base de datos al ejecutar el comando mysql. Por ejemplo, paraconectarse al servidor MySQL y seleccionar al mismo tiempo la base de datos es: shell> mysql -u root -p mibasededatosTal vez cause algo de confusión en algunos lectores, ya que parece que se proporciona la palabra"mibasededatos" como la contraseña del usuario root. Esto no es correcto. Hay que tomarse unmomento para revisar la sintaxis que se describe en la salida del comando mysql --help, puesto quedebe de ser evidente que "-u root -p" se refiere a la parte de [opciones] y "mibasededatos" a la parte de[base de datos].La otra manera de seleccionar una base de datos, es cuando uno ya está conectado al servidorMySQL. Para ello se debe usar el siguiente comando: mysql> use mibasededatosUna vez ejecutado cualquiera de los dos comandos, todas las consultas se dirigirán hacia la base dedatos hipotética mibasededatos.mysqladminEl programa mysqladmin se usa para administrar varios aspectos del servidor de bases de datosMySQL. Al usarlo, el administrador puede realizar las tareas tales como: crear y eliminar bases dedatos, dar de baja el servidor MySQL, actualizar las tablas de privilegios, y ver los procesos que seestán corriendo (ejecutando) dentro de MySQL. La sintaxis general es: shell> mysqladmin [opciones] comando(s) www.mysql-hispano.org 6 of 13
  • 8. Introducción a MySQLDónde [opciones] puede ser toda una serie de opciones usadas en conjunción con el programamysqladmin. Puesto que se asume que es la primera vez que se usa el programa mysqladmin, serecomienda que se revisen con detalle todas las opciones que se tienen permitidas con este programa.Usar el siguiente comando: shell> mysqladmin --helpEsto produce una larga lista de las opciones que se pueden usar en conjunción con el programa demysqladmin. Para demostrar como son usadas estas opciones, a continuación vamos a decirle amysqladmin que necesitamos crear una base de datos llamada widgets, la cuál será usada a travésdel resto de este artículo para ver otras funciones útiles de MySQL.Una base de datos se crea como sigue: shell> mysqladmin -u root -p create widgets Enter Password:Después de la ejecución, mysqladmin creará la base de datos y regresará el shell del sistema.Típicamente, el siguiente paso consiste en asegurar la nueva base de datos modificando las tablas deprivilegios. Los detalles de como se hace esto es el objetivo de la siguiente sección.Lecturas adicionales en la documentación de MySQL (en inglés):14.5 Administering a MySQL ServerAsegurando una base de datosLa seguridad debe ser lo primero que debe venir a la mente de un administrador de MySQL despuésde crear una base de datos. Como se discutió en la sección "Las tablas de privilegios", asegurar una basede datos consiste en hacer modificaciones a las tablas que se encuentran en la base de datos llamadamysql. En esta sección, el lector aprenderá a asegurar la base de datos widgets que se creóanteriormente. Antes de hacer esto, se va a realizar un breve resumen de cómo son modificadas lastablas de privilegios.Hay dos métodos usados para modificar las tablas de privilegios. El primero es a través del uso de lassentencias típicas de SQL tales como INSERT, UPDATE, y DELETE. Sin embargo el uso de estemétodo ha sido depreciado para introducir el segundo método, el cual involucra el uso de loscomandos especiales GRANT yREVOKE. Por lo tanto, sólo este método se discutirá a continuación.El comando GRANTLa función del comando GRANT es crear nuevos usuarios, y asignarle sus privilegios. Su sintaxis es: GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} TO user_name [IDENTIFIED BY password] [, user_name [IDENTIFIED BY password] ...] [WITH GRANT OPTION] www.mysql-hispano.org 7 of 13
  • 9. Introducción a MySQLUna comprensión de cómo trabaja el comando GRANT se obtiene mejor a través de ejemplos. En elejemplo siguiente, el comando GRANT es usado para agregar un nuevo usuario a la base de datos.Este usuario será usado para accesar a la base de datos widgets: mysql>GRANT usage ON *.* TO widgetAdmin@localhost ->IDENTIFIED BY ilovewidgets;Esto creará un nuevo usuario denominado widgetAdmin, capaz de conectarse al servidor MySQL vía ellocalhost usando la contraseña ilovewidgets. Hay que tener presente que sólo se otorgan privilegios deconexión, no se permitirá que el usuario haga nada en el servidor MySQL. Vamos a proseguircambiándonos a la base de datos mysql y ejecutando la siguiente consulta: mysql> SELECT * FROM user;Nótese que la fila conteniendo el usuario widgetAdmin tiene valores N para todos los demás privilegios.Esto es bueno, puesto que la tabla user contiene privilegios de carácter global. Para clarificar esto, siun valor "Y" se pone para cualquier privilegio en la tabla user, ese usuario puede aplicar ese privilegio acualquier base de datos de MySQL. Por lo tanto, casi siempre será mejor si todos los privilegios estánen "N" dentro de esta tabla.¿Bien, entonces como se asignan los privilegios a un usuario para una base de datos en particular?.Esto se hace fácilmente modificando ligeramente el comando GRANT del ejemplo previo. Por ejemplo,si asumimos que el administrador quiere otorgar los privilegios SELECT, INSERT, UPDATE y DELETEal usuario widgetAdmin sobre la base de datos widgets, se tendría que usar el comando GRANT de lasiguiente manera: mysql>GRANT SELECT, INSERT, UPDATE, DELETE ->ON widgets.* TO widgetAdmin@localhost;Después de la ejecución de este comando, el usuario widgetAdmin puede inmediatamente hacer uso deestos privilegios.Los privilegios introducidos aquí no son los únicos disponibles para el administrador. La tabla 1-1proporciona un lista de todos los privilegios disponibles.Tabla 1-1: privilegios disponibles para usar con el comando GRANT y REVOKE ALL PRIVILEGES FILE RELOAD ALTER INDEX SELECT CREATE INSERT SHUTDOWN DELETE PROCESS UPDATE DROP REFERENCES USAGE www.mysql-hispano.org 8 of 13
  • 10. Introducción a MySQLPara ver los nuevos privilegios que han sido asignados, se puede ejecutar la siguiente consulta: mysql> SELECT * FROM db;Nótese que una fila ha sido agregada a la tabla "db" para el registro del usuario widgetAdmin, con losvalores "Y" asignados a los campos SELECT, INSERT, UPDATE y DELETE.Aunque en este ejemplo se mostró como crear un usuario, y posteriormente como asignarle losprivilegios, es posible hacer estos dos pasos en uno solo, al ejecutar el comando GRANT vistoanteriormente, con una ligera variante. mysql>GRANT SELECT, INSERT, UPDATE, DELETE ->ON widgets.* TO widgetAdmin@localhost ->IDENTIFIED BY ilovewidgets;Asumiendo que el usuario widgetAdmin aún no existe cuando se ejecute esta consulta, tanto la tabla"user", como la tabla "db" serán actualizadas con las registros necesarios.Por supuesto, el administrador puede revocar los privilegios otorgados en cualquier momento. Éste es elobjetivo que se cubre en la siguiente sección.La sentencia REVOKELa sentencia REVOKE es usada para rescindir los privilegios que han sido previamente otorgados a unusuario. Su sintaxis es la siguiente: REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} FROM user_name [, user_name ...]Como en el caso del comando GRANT, quizás la mejor manera de entender realmente cómo funcionaeste comando es experimentado con varios ejemplos. Asumiendo que el administrador tiene lanecesidad de revocar el privilegio DELETE que había sido otorgado al usuario widgetAdmin, se tieneque ejecutar el comando REVOKE de la siguiente manera: mysql>REVOKE DELETE ON widgets.* ->FROM widgetAdmin@localhost;Un punto que se debe tener presente es que mientras REVOKE puede quitar todos los privilegiosotorgados a un usuario (inclusive los privilegios de conexión), éste no quita al usuario de la tabla deprivilegios. Para ilustrar esto, hay que considerar el siguiente comando: mysql>REVOKE ALL PRIVILEGES ON widgets.* ->FROM widgetAdmin@localhost; www.mysql-hispano.org 9 of 13
  • 11. Introducción a MySQL¡Mientras esto tendría como resultado que sean revocados todos los privilegios del usuariowidgetAdmin, éste no borraría registros trascendentes de las tablas de privilegios!. Si lo que se deseaes borrar completamente a un usuario de la base de datos se tiene que hacer uso de la sentenciaDELETE como sigue: mysql>DELETE FROM user WHERE user = widgetAdmin; Query OK, 1 row affected (0.00 sec) mysql>FLUSH PRIVILEGES;Cuando ha sido ejecutada esta sentencia, se elimina a un usuario de manera definitiva de la tabla deprivilegios.Lecturas adicionales en la documentación de MySQL (en inglés):7.34 Grant and Revoke SyntaxRespaldos de bases de datosEl concepto final discutido en este tutorial es uno verdaderamente importante: respaldos de datos. Enesta sección se discuten dos métodos de hacer respaldos de datos y de las estructuras de las bases dedatos MySQL, los comandos mysqldump y mysqlhotcopy.mysqldumpEl comando mysqldump proporciona una manera conveniente para respaldar datos y estructuras detablas. Hay que notar que mientras el comando mysqldump no es el método más eficiente para crearrespaldos (mysqlhotcopy se describe a continuación), éste ofrece un medio conveniente para copiardatos y estructuras de tablas que puede ser usado para "poblar" otro servidor SQL, no importando si setrata, o no de un servidor MySQL. El comando mysqldump puede ser usado para crear respaldos detodas las bases de datos, algunas bases de datos, sólo una de ellas, o incluso ciertas tablas de una basede datos dada. En esta sección se ilustra la sintaxis involucrada con varios posibles escenarios, seguidacon unos pocos ejemplos.Usando el comando mysqldump para respaldar sólo una base de datos: shell> mysqldump [opciones] nombre_base_datosUsando el comando mysqldump para respaldar varias tablas de una base de datos: shell> mysqldump [opciones] nombre_base_datos tabla1 tabla2. . . tablaNUsando mysqldump para respaldar varias bases de datos: shell> mysqldump [opciones] --databases [opciones] nombre_bd1 nombre_bd2... www.mysql-hispano.org 10 of 13
  • 12. Introducción a MySQLUsando mysqldump para respaldar todas las bases de datos: shell> mysqldump [opciones] --all-databases [opciones]Las opciones pueden ser vistas ejecutando el siguiente comando: shell> mysqldump --help- Ejemplos -Respaldar ambos, la estructura y los datos encontrados dentro de la base de datos widgets puede serrealizado como sigue: shell> mysqldump -u root -p --opt widgetsAlternativamente, quizás se requiera respaldar únicamente los datos, esto es logrado al incluir laopción --no-create-info, lo que significa que no se creen los datos relativos a la creación de las tablas. shell>mysqldump -u root -p --no-create-info widgetsOtra variación es respaldar únicamente la estructura de las tablas, esto es logrado al incluir la opción --no-data, que significa la no creación de los datos de las tablas. shell>mysqldump -u root -p --no-data widgetsSi se está planeando usar mysqldump con el fin de respaldar datos para que puedan ser movidos aotro servidor MySQL, es recomendado que se use la opción "--opt". Esto nos dará un respaldooptimizado de los datos que tendrá como resultado un tiempo más rápido de lectura cuando sequieran cargar los datos en otro servidor MySQL.Mientras mysqldump proporciona un método conveniente para respaldar datos, hay un segundométodo, el cuales más rápido, y más eficiente. Esto se describe en la siguiente sección.mysqlhotcopyEl comando mysqlhotcopy es un script de Perl que usa varios comandos SQL y del sistema pararespaldar una base de datos. Más específicamente éste bloquea las tablas, limpia las tablas, hace unacopia, y desbloquea las tablas. Aunque este sea el método disponible más rápido para respaldar unabase de datos MySQL, éste se limita a respaldar sólo las bases de datos que residen en la mismamáquina en la cual está siendo ejecutado el comando mysqlhotcopy. www.mysql-hispano.org 11 of 13
  • 13. Introducción a MySQLEl comando mysqlhotcopy puede ser ejecutado para respaldar una base de datos, varias bases dedatos, o sólo las bases de datos cuyo nombre coincida con una expresión regular. En esta sección, semuestra la sintaxis involucrada con cada posible escenario seguida de unos pocos ejemplos.Usando mysqlhotcopy para respaldar sólo una base de datos: shell> mysqlhotcopy [opciones] nombre_bd /ruta/nuevo/directorioUsando mysqlhotcopy para respaldar varias bases de datos: shell> mysqlhotcopy [opciones] nombre_bd1.. nombre_bdN /ruta/nuevo/directorioUsando mysqlhotcopy para respaldar sólo las tablas de una base de datos cuyo nombre coincida conuna expresión regular: shell> mysqlhotcopy [opciones] nombre_bd./expresionregular/Las opciones completas del comando mysqlhotcopy pueden ser vistas ejecutando el siguiente comando: shell> mysqlhotcopy --help- Ejemplos -Para usar mysqlhotcopy para respaldar la base de datos widgets al directorio "/usr/mysql/backups/" setiene que ejecutar el siguiente comando: shell>mysqlhotcopy -u root -p widgets /usr/mysql/backupsUn segundo ejemplo asume que la base de datos widgets contiene las tablas "productos2000","productos2001", "clientes2000", y "clientes2001", con los cuatro digitos representando los datoscorrespondientes a cada año.Si se desean respaldar las tablas relativas al año "2000", el comando mysqlhotcopy tendría que usarsecomo sigue: shell> mysqlhotcopy -u root -p widgets./^.+(2000)$/ /usr/mysql/backupsEn el ejemplo de arriba, la expresión /^.+(2000)$/ le dice a mysqlhotcopy que respalde sólo las tablascuyo nombre finalice con la cadena "2000". www.mysql-hispano.org 12 of 13
  • 14. Introducción a MySQLLecturas adicionales en la documentación de MySQL (en inglés):14.6 Dumping MySQL Database and Table Structures and Data11 Replication in MySQL14.7 Copying MySQL Databases and TablesConclusionesEl objetivo de este tutorial fue introducir los temas esenciales relacionados con la funcionalidad básicadel servidor MySQL. Se sugiere que los lectores novatos dediquen algo de tiempo para experimentarcon todos los ejemplos, como bien se dice, "aprendiendo haciendo" es la manera más rápida de llegara sentirse cómodo con MySQL.La próxima vez, hecharemos un vistazo en algunos detalles de configuración, enfocándonos en el archivomy.cnf, que fué introducido a principios de este tutorial. www.mysql-hispano.org 13 of 13