Manual Taller Mysql

download Manual Taller Mysql

of 50

Transcript of Manual Taller Mysql

  • 7/31/2019 Manual Taller Mysql

    1/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Taller de MySQL

    Autores del manual

    Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com:Rubn AlvarezRedactor de DesarrolloWeb.comhttp://www.desarrolloweb.com(1 captulo)

    Miguel Angel AlvarezDirector de DesarrolloWeb.comhttp://www.desarrolloweb.com(10 captulos)

    Carlos Luis Cuencahttp://www.helloworldsolutions.com/(11 captulos)

    Russvell Oblitas ValenzuelaBch. Sistemas e Informtica(1 captulo)

    Manu Gutierrezhttp://www.tufuncion.com(1 captulo)

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    1

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/http://www.desarrolloweb.com/http://www.desarrolloweb.com/http://www.helloworldsolutions.com/http://www.tufuncion.com/http://www.tufuncion.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/http://www.desarrolloweb.com/http://www.helloworldsolutions.com/http://www.tufuncion.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    2/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Instalacin de MySQL en Windows

    Uno de los puntos fuertes de las pginas en PHP es la posibilidad de explotar bases de datosmediante funciones de una simplicidad y potencia muy agradecidas. Estas bases de datospueden servir a nuestro sitio para almacenar contenidos de una forma sistemtica que nospermita clasificarlos, buscarlos y editarlos rpida y fcilmente.

    Una base de datos es sencillamente un conjunto de tablas en las que almacenamos distintosregistros (artculos de una tienda virtual, proveedores o clientes de una empresa, pelculas encartelera en el cine...). Estos registros son catalogados en funcin de distintos parmetros quelos caracterizan y que presentan una utilidad a la hora de clasificarlos. As, por ejemplo, losartculos de una tienda virtual podran catalogarse a partir de distintos campos como puede serun nmero de referencia, nombre del artculo, descripcin, precio, proveedor...

    La base de datos ms difundida con el tandem UNIX-Apache es sin duda MySQL. Como para el

    caso de Apache, una versin para Windows est disponible y puede ser descargada gratis.

    Su puesta a punto no entraa mucha dificultad. Una vez instalado el programa podemosejecutar nuestras ordenes en modo MS-DOS. Para ello abrimos una ventana MS-DOS y noscolocamos en el directorio bin de mysql. En este directorio se encuentran los archivosejecutables. Aqu habr que encontrar un archivo llamado mysqld. En el caso de la versin msactual durante la redaccin de este articulo este archivo es llamado mysqld-shareware. Unavez ejecutado este archivo podemos ejecutar el siguiente: mysql.

    Llegados a este punto veremos cmo un mensaje de bienvenida aparece en nuestra pantalla.En estos momentos nos encontramos dentro de la base de datos. A partir de ah podemosrealizar todo tipo de operaciones por sentencias SQL.

    No vamos a entrar en una explicacin pormenorizada del funcionamiento de esta base dedatos ya que esto nos dara para un manual entero. Daremos como referencia nuestro tutorialde SQL a partir del cual se puede tener una idea muy prctica de las sentencias necesariaspara la creacin y edicin de las tablas. Tambin existe una documentacin extensa en inglsen el directorio Docs de MySQL. A modo de resumen, aqu os proponemos adems lasoperaciones ms bsicas que, combinadas nuestro tutorial de SQL pueden dar solucin agran parte de los casos que se os presenten:

    n Descripcin

    ses; Muestra el conjunto de bases de datos presentes en el servidor

    a_base Determina la base de datos sobre la que vamos a trabajar

    e_de_la_base; Crea una nueva bd con el nombre especificado

    _de_la_base; Elimina la base de datos del nombre especificado

    s; Muestra las tablas presentes en la base de datos actual

    e_la_tabla; Describe los campos que componen la tabla

    e_la_tabla; Borra la tabla de la base de datos

    ivo.txt" Into Tabletabla;

    Crea los registros de la tabla a partir de un fichero de texto en el que separamos por tabun mismo registro.

    Salir de MySQL

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    2

    http://www.desarrolloweb.com/http://dev.mysql.com/downloads/http://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/articulos/274.phphttp://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/manuales/34/http://dev.mysql.com/downloads/http://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/articulos/274.phphttp://www.desarrolloweb.com/manuales/9/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    3/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Para evitarnos el tener que editar nuestras tablas directamente sobre archivos de texto, puede

    resultar muy prctico usar cualquier otra base de datos con un editor y exportar a continuacinla tabla en un archivo de texto configurado para dejar tabulaciones entre cada campo. Esto esposible en Access por ejemplo pinchando con el botn derecho sobre la tabla que queremosconvertir y eligiendo la opcin exportar. Una ventana de dialogo aparecer en la queelegiremos guardar el archivo en tipo texto. El paso siguiente ser elegir un formato delimitadopor tabulaciones sin cualificador de texto.

    Otra posibilidad que puede resultar muy prctica y que nos evita trabajar continuamentetecleando rdenes al estilo de antao es servirse de programas en PHP o Perl ya existentes ydescargables en la red. El ms popular sin duda es phpMyAdmin. Este tipo de scripts sonejecutados desde un navegador y pueden ser por tanto albergados en nuestro servidor oempleados en local para, a partir de ellos, administrar MySQL de una forma menos sufrida.

    Asimismo, dentro del directorio bin de MySQL, podemos encontrar una pequea aplicacinllamada MySqlManager. Se trata de una interface windows, ms agradable a la vista y al usoque la que obtenemos ejecutando el archivo mysql. En este caso, las sentencias SQL debenrealizarse sin el punto y coma final.

    Artculo porRubn Alvarez

    Tipos de Datos de Mysql

    Despus de la fase de diseo de una base de datos, y una vez se ha realizado el paso a tablasdel mismo, en necesario crear las tablas correspondientes dentro de la base de datos. Paracada campo de cada una de las tablas, es necesario determinar el tipo de datos que contiene,para de esa forma ajustar el diseo de la base de datos, y conseguir un almacenamientoptimo con la menor utilizacin de espacio. El presente artculo describe cada uno de los tiposde datos que puede tener un campo en Mysql, para la versin 4.xx.xx.

    Los tipos de datos que puede haber en un campo, se pueden agrupar en tres grandes grupos:

    1. Tipos numricos

    2. Tipos de Fecha

    3. Tipos de Cadena1 Tipos numricos:

    Existen tipos de datos numricos, que se pueden dividir en dos grandes grupos, los que estnen coma flotante (con decimales) y los que no.

    TinyInt: es un nmero entero con o sin signo. Con signo el rango de valores vlidos va desde-128 a 127. Sin signo, el rango de valores es de 0 a 255

    Bit Bool: un nmero entero que puede ser 0 1

    SmallInt: nmero entero con o sin signo. Con signo el rango de valores va desde -32768 a

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    3

    http://www.desarrolloweb.com/http://phpwizard.net/projects/phpMyAdmin/http://www.desarrolloweb.com/manuales/34/http://phpwizard.net/projects/phpMyAdmin/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    4/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    32767. Sin signo, el rango de valores es de 0 a 65535.

    MediumInt: nmero entero con o sin signo. Con signo el rango de valores va desde

    -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215.Integer, Int: nmero entero con o sin signo. Con signo el rango de valores va desde-2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295

    BigInt: nmero entero con o sin signo. Con signo el rango de valores va desde-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a18.446.744.073.709.551.615.

    Float: nmero pequeo en coma flotante de precisin simple. Los valores vlidos van desde-3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38.

    xReal, Double: nmero en coma flotante de precisin doble. Los valores permitidos van desde-1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde2.2250738585072014E-308 a 1.7976931348623157E+308

    Decimal, Dec, Numeric: Nmero en coma flotante desempaquetado. El nmero se almacenacomo una cadena

    Tipo deCampo

    Tamao deAlmacenamiento

    TINYINT 1 byte

    SMALLINT 2 bytes

    MEDIUMINT 3 bytes

    INT 4 bytesINTEGER 4 bytes

    BIGINT 8 bytes

    FLOAT(X) 4 8 bytes

    FLOAT 4 bytes

    DOUBLE 8 bytes

    DOUBLEPRECISION

    8 bytes

    REAL 8 bytes

    DECIMAL(M,D M+2 bytes s D > 0, M+1bytes s D = 0

    NUMERIC(M,D)

    M+2 bytes if D > 0, M+1bytes if D = 0

    2 Tipos fecha:

    A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de unamanera estricta si una fecha es vlida o no. Simplemente comprueba que el mes estacomprendido entre 0 y 12 y que el da esta comprendido entre 0 y 31.Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    4

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    5/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    31 de diciembre de 9999. El formato de almacenamiento es de ao-mes-dia

    DateTime: Combinacin de fecha y hora. El rango de valores va desde el 1 de enero del 1001

    a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutosy 59 segundos. El formato de almacenamiento es de ao-mes-dia horas:minutos:segundos

    TimeStamp: Combinacin de fecha y hora. El rango va desde el 1 de enero de 1970 al ao2037. El formato de almacenamiento depende del tamao del campo:

    Tamao

    Formato

    14 AoMesDiaHoraMinutoSegundoaaaammddhhmmss

    12AoMesDiaHoraMinutoSegundo

    aammddhhmmss8 oMesDia aaaammdd

    6 AoMesDia aammdd

    4 AoMes aamm

    2 Ao aa

    Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundosa 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'

    Year: almacena un ao. El rango de valores permitidos va desde el ao 1901 al ao 2155. El

    campo puede tener tamao dos o tamao 4 dependiendo de si queremos almacenar el ao condos o cuatro dgitos.

    Tipode

    Campo

    Tamao deAlmacenami

    ento

    DATE 3 bytes

    DATETIME

    8 bytes

    TIME

    STAMP 4 bytes

    TIME 3 bytes

    YEAR 1 byte

    3 Tipos de cadena:

    Char(n): almacena una cadena de longitud fija. La cadena podr contener desde 0 a 255caracteres.

    VarChar(n): almacena una cadena de longitud variable. La cadena podr contener desde 0 a

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    5

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    6/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    255 caracteres.

    Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo

    BLOB (Binary large Object)La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizarordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta lasMaysculas y las minsculas, el tipo BLOB se ordena tenindolas en cuenta.

    Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.

    TinyText y TinyBlob: Columna con una longitud mxima de 255 caracteres.

    Blob y Text: un texto con un mximo de 65535 caracteres.

    MediumBlob y MediumText: un texto con un mximo de 16.777.215 caracteres.

    LongBlob y LongText: un texto con un mximo de caracteres 4.294.967.295. Hay que teneren cuenta que debido a los protocolos de comunicacin los paquetes pueden tener un mximode 16 Mb.

    Enum: campo que puede tener un nico valor de una lista que se especifica. El tipo Enumacepta hasta 65535 valores distintos

    Set: un campo que puede contener ninguno, uno varios valores de una lista. La lista puedetener un mximo de 64 valores.

    Tipo de campo Tamao de Almacenamiento

    CHAR(n) n bytesVARCHAR(n) n +1 bytes

    TINYBLOB,TINYTEXT

    Longitud+1 bytes

    BLOB, TEXT Longitud +2 bytes

    MEDIUMBLOB,MEDIUMTEXT

    Longitud +3 bytes

    LONGBLOB,LONGTEXT

    Longitud +4 bytes

    ENUM('value1','valu

    e2',...)

    1 dos bytes dependiendo del nmero de

    valoresSET('value1','value2'

    ,...)1, 2, 3, 4 8 bytes, dependiendo del

    nmero de valores

    Diferencia de almacenamiento entre los tipos Char y VarChar

    Valor CHAR(4)Almace

    namientoVARCHAR

    (4)

    Almace

    namiento

    '' '' 4 bytes " 1 byte

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    6

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    7/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    'ab' 'ab ' 4 bytes 'ab'3

    bytes

    'abcd' 'abcd' 4 bytes 'abcd'

    'abcdefgh'

    'abcd' 4 bytes 'abcd' 5bytes

    Artculo porCarlos Luis Cuenca

    Mysql Control Center

    MyCC es una potente consola de Administracon para Mysql, que permite realizar todas lastareas de administracin y trabajo de Mysql mediante un interface grfico, y que viene a cubrir

    una de las mayores objeciones que los usuarios tenan de Mysql.

    Para Utilizarlo, primero lo tendrs que descargar de Mysql.com. Existen actualmente versionesdisponibles para Linux y para Windows. Para poder trabajar con un servidor de Mysql, primerolo tendrs que dar de alta mediante el icono de Resgitrar servidor. Aparece un cuadro dedilogo en el cal se pueden configurar todos los parmetros de acesso al servidor, como sonnombre del servidor, nombre de usuario, contrasea, puerto etc. Una vez conectado a unservidor se podr acceder a las tareas de administracin de los usuarios de Mysql,administrador del gestor, y administracin de las tablas.

    Administrador de Usuarios

    Desde el se pueden aadir, borrar y modifcar las propiedades de los usarios de Mysql. Al hacer

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    7

    http://www.desarrolloweb.com/http://www.mysql.com/downloads/gui-mycc.htmlhttp://www.mysql.com/http://www.desarrolloweb.com/manuales/34/http://www.mysql.com/downloads/gui-mycc.htmlhttp://www.mysql.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    8/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    click sobre un usuario aparece la ventana de configuracin del usuario.

    En ella se pueden configurar el nombre de usuario, la contrasea. Respecto a los permisos,permite establecer un sistema de permisos general o individualizado para cada una de lastablas. Adems permite darle permiso al usuario para que se lo ceda a otros (GRANTOPTIONS). Uno de los puntos fuertes respecto a la seguridad es que al definir un usuario, hayque especificar el servidor desde al cual acceder, limitando de esta forma, los riesgos deacceso indebido.

    Administracin del servidor

    La ventana de Administracin del servidor consta de tres pestaas desde la cual se puedenacceder a la lista de procesos, las variables de estado del servidor y las variables deconfiguracin.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    8

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    9/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Desde esta ventana adems se puede hacer un Ping al servidor, detenerlo, o guardar elcontenido de las variables de estado. Desde la pestaa de procesos se puede ver el estado decada uno de los procesos activos, viendo sus propiedades y con la opcin de detenerlosmediante un Kill. Desde la pestaa de estado, se puede ver el contenido de cada una de lasvariables de estado, y se puede personalizar para mostrar simplemente las que te interesn.Desde la pestaa de variables se puede acceder al valor de cada una de las variables deconfiguracin del servidor de Mysql.

    Ventana de Base de Datos

    Al seleccionar una base de datos dentro de la seccin de bases de datos, aparece la ventanade base de datos, en ella se puede ver informacin relacionada con la base de datos, comopuede ser nmero de tablas, el nmero de consultas por segundo, el tiempo que lleva enfuncionamiento etc. Al seleccionar una base de datos, se pueden ver los nombres de las tablasque contiene, el nmero de registros que contiene. Las tablas se pueden eliminar, vaciar yrenombrar. Cuando se selecciona una tabla, se pueden ver el nombre de los campos, los tiposde datos y los parmetros opcionales de cada uno de ellos.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    9

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    10/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Esta ventana permite crear nuevos campos, eliminarlos o modificar sus propiedades. Ademsmediante el icono de herramientas, se puede analizar la tabla, optimizarla y repararla. Al hacerdoble clic sobre una tabla se muestran en la ventana los datos que contiene. Haciendo clicsobre cualquiera de los campos, se accede a la estructura de la misma. Para cada campo sepuede elegir el tipo de datos, el tamao, si es clave o no, el valor predeterminado del mismo.

    Dentro de la tabla, existe un cuadro para configurar los ndices que tiene.

    Desde ella se pueden seleccionar los campos que lo contienen, as como el tipo de ndice que

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    10

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    11/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    se desea crear. Desde la pestaa de propiedades de la tabla se acceden a los atributos de lamisma, como pueden ser el tipo de tabla, el modo de escritura, el tamao mximo de cada filaetc.

    En fin como puedes ver esta es la consola de acceso al servidor de Mysql que llevabamostiempo esperando. El producto se distribuye como software libre, as que tanto la descargacomo la utilizacin ilimitada es gratuita. Dispone de versiones Linux y Windows y se puedeencontrar mucha ms informacin, as como la ltima versin en la direccin www.mysql.com/products/mysqlcc/.

    Artculo porCarlos Luis Cuenca

    MySQL Administrator

    MySQL Administrador es el nuevo software de administracin de servidores de Bases de Datosde MySQL que ha creado MySQL AB. Se trata de un software multiplataforma, que por elmomento se encuentra disponible para Linux y Microsoft Windows y que cuenta con un entornogrfico de usuario muy intuitivo.

    Este nuevo producto suple las carencias que tiene MySQL Control Center en el rea deAdministracin de servidores. MySQL Control Center en estos momentos est deprecado, haquedado obsoleto y no sigue desarrollndose. Se ha sustituido por el conjunto de programasMySQL Administrator y MySQL Query Browser.

    MySQL Administrador es una herramienta que permite realizar tareas administrativas sobreservidores de MySQL incluyendo:

    la configuracin de las opciones de inicio de los servidores inicio y detencin de servidores monitorizacin de conexiones al servidor administracin de usuarios monitorizacin del estado del servidor, incluyendo estadsticas de uso visualizacin de los logs de servidor gestin de copias de seguridad y recuperaciones visualizacin de catlogos de datos.

    Instalacin y configuracin:

    La descarga del programa se hace desde la pgina web de MySQL, en

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    11

    http://www.desarrolloweb.com/http://www.mysql.com/products/mysqlcc/http://www.mysql.com/products/mysqlcc/http://www.desarrolloweb.com/manuales/34/http://www.mysql.com/products/mysqlcc/http://www.mysql.com/products/mysqlcc/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    12/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    http://dev.mysql.com/downloads/administrator, Tambin en la pgina de MySQL existen unaserie de FAQs que ayudan en la instalacin en caso de dudas, aunque la misma es bastantesimple, en http://www.mysql.com/products/administrator/.

    Una vez instalado es necesario configurar una primera conexin contra un servidor de MySQLpara poder acceder a la administracin del mismo.

    En la pantalla de configuracin se debern especificar los datos del servidor, nombre deusuario, contrasea y puerto, de la base de datos a la cual se desea conectar.

    Una vez introducidos de forma correcta, aparece la pantalla principal del programa:

    Desde la pantalla principal se puede ver la informacin relativa al servidor de base datos al quese ha conectado, as como las caractersticas de la mquina en la que se est ejecutando elprograma.

    En la barra de men a travs de Tools, se tiene acceso a una consola de sistema (Windows oLinux dependiendo del caso), un cliente de conexin a MySQL bajo lnea de comandos y aMySQL Query Browser. Desde este mismo men, se accede a las opciones de configuracin deladministrador y de las conexiones que hay configuradas:

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    12

    http://www.desarrolloweb.com/http://dev.mysql.com/downloads/administratorhttp://www.mysql.com/products/administrator/http://www.desarrolloweb.com/manuales/34/http://dev.mysql.com/downloads/administratorhttp://www.mysql.com/products/administrator/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    13/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    En la seccin de conexiones se encuentran almacenadas todas las conexiones a servidores quehay configuradas.

    Algunas utilidades accesibles desde la ventana principal del programa son:

    Service control: Inicio y detencin de servidores (slo accesible si se ha conectado con unservidor MySQL en la mquina local).Startup variables: Configuracin del servidor y las variables de inicio (slo accesible si se haconectado con un servidor MySQL en la mquina local).User Administration: Para la gestin de usuarios y permisos.Server conections: Visualiza y gestiona las conexiones abiertas con el servidor de bases dedatos.

    Health: Informacin sobre la carga del servidorServer Logs: El historial de logs del servidor.Replication Status: Con informacin de los sistemas replicados.Backup: Para hacer una copia de seguridad de las bases de datos.Restore: Para restaurar las copias de seguridad.Catalogs: Para mostrar las bases de datos, visualizar, crear y editar las tablas.

    Referencia: En el Taller de MySQL tenemos otros artculos para explicar tareas bsicas de administracinde MySQL. Tenemos un artculo que puede ser interesante para leer ahora que explica cmo realizar laadministracin de usuarios con MySQL Administrator.

    Conclusin

    A la base de datos MySQL le faltaba una herramienta como MySQL Administrator. No cabe

    duda que se trata de un programa extremadamente til e imprescindible para administrarvisualmente servidores MySQL.

    Muchas de las opciones de configuracin de la base de datos son muy sencillas de entender yde utilizar, por lo menos todas las opciones ms bsicas. En conjunto con MySQL QueryBrowse, nos permite gestionar cualquier aspecto de una base de datos MySQL.

    Artculo porCarlos Luis Cuenca

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    13

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/2510.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/2510.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    14/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    phpMyAdmin

    phpMyAdmin es un programa de libre distribucin en PHP, creado por una comunidad sinnimo de lucro, que slo trabaja en el proyecto por amor al arte. Es una herramienta muycompleta que permite acceder a todas las funciones tpicas de la base de datos MySQL a travsde una interfaz web muy intuitiva.

    La aplicacin en si no es ms que un conjunto de archivos escritos en PHP que podemos copiaren un directorio de nuestro servidor web, de modo que, cuando accedemos a esos archivos,

    nos muestran unas pginas donde podemos encontrar las bases de datos a las que tenemosacceso en nuestro servidor de bases de datos y todas sus tablas. La herramienta nos permitecrear tablas, insertar datos en las tablas existentes, navegar por los registros de las tablas,editarlos y borrarlos, borrar tablas y un largo etctera, incluso ejecutar sentencias SQL y hacerun backup de la base de datos.

    Pgina de phpMyAdmin

    La pgina de inicio del proyecto es http://www.phpmyadmin.net/. Desde all podemosdescargar los ficheros de la ltima versin de la aplicacin, que posteriormente debemoscolocar en nuestro servidor web. Tambin podemos encontrar a phpMyAdmin dentro de la redSourceforge.net, que es un sitio que recoge multitud de proyectos "Open Source" (cdigo

    abierto).

    Hay varias versiones disponibles, pero es recomendable escoger la que nos aconsejen como laltima versin estable (The last stable versin). En el momento de escribir este artculo era la2.2.6. De modo que, si nuestro sistema es Windows, descargaremos el archivo phpMyAdmin-2.2.6-php.zip

    Los archivos que hemos descargado son de la versin 4 de PHP, aunque tambin ofrecen laposibilidad de bajarse los archivos que guardan compatibilidad con la versin 3 de PHP, paraque aquellos que no dispongan del motor de PHP ms actual.

    La pagina de inicio del programa tambin nos ofrece la posibilidad de ver un demo online,

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    14

    http://www.desarrolloweb.com/http://www.phpmyadmin.net/http://www.sourceforge.net/http://www.desarrolloweb.com/manuales/34/http://www.phpmyadmin.net/http://www.sourceforge.net/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    15/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    aunque nos avisan de que el servidor donde se aloja puede estar cado.http://www.phpmyadmin.net/phpMyAdmin/

    Instalando phpMyAdmin

    Una vez descargada la ltima versin la tenemos que descomprimir, con lo que obtendremoslos ficheros PHP que conforman la herramienta y colocarlos dentro del directorio de publicacinde nuestro servidor web.

    Nota: recordamos que phpMyAdmin es un proyecto escrito en PHP, por lo que necesitaremos colocar losarchivos en un servidor web que permita programacin de pginas PHP. Adems, deberemos acceder a laherramienta a travs de la direccin del servidor web, seguida del directorio en el que tenemos losarchivos que hemos descomprimido. Por ejemplo, si nuestro servidor es el PWSy hemos colocado losarchivos dentro del directorio de publicacin (Generalmente C:\Inetpub\wwwroot), en el subdirectoriophpMyAdmin, debemos escribir algo como http://localhost/phpMyAdmin

    Si tuviramos instalado un servidor Apache los colocaramos en la carpeta que hayamos indicado como"documentRoot", que suele ser htdocs.

    Lo primero que podemos leer es el archivo de la documentacin, que encontramos junto conlos archivos de phpMyAdmin. Explica datos generales del programa, como sus requerimientos,instrucciones de instalacin, configuracin, preguntas frecuentes, etc.

    Posteriormente, tal como explica la documentacin, hay que editar el archivo config.inc.phppara cambiar los valores de host de la base de datos (ordenador que tiene instalado el MySQL)y el usuario y password con el que nos conectamos. Se pueden configurar muchos aspectos enla herramienta, aunque ahora solo comentar los que he encontrado esenciales para hacerlafuncionar, en la documentacin tenemos un apartado dedicado por completo a especificar elsentido de cada variable.

    $cfgPmaAbsoluteUriDebemos asignarlo a la ruta completa necesaria para acceder a phpMyAdmin. Podra ser algocomo http://localhost/phpMyAdmin o http://www.midominio.com/phpMyAdmin

    $cfgServers[$i]['host'] string

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    15

    http://www.desarrolloweb.com/http://www.phpmyadmin.net/phpMyAdmin/http://www.desarrolloweb.com/articulos/342.phphttp://www.desarrolloweb.com/articulos/342.phphttp://www.desarrolloweb.com/manuales/34/http://www.phpmyadmin.net/phpMyAdmin/http://www.desarrolloweb.com/articulos/342.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    16/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    El nombre del host de la base de datos. Por ejemplo localhost, si es que es el mismo ordenadordonde estamos instalandos phpMyAdmin y la base de datos. Tambin podra ser la direccin IPdel ordenador al que nos conectamos.

    $cfgServers[$i]['user'] string$cfgServers[$i]['password'] stringEl par usuario/contrasea que debe utilizar phpMyAdmin para conectarse con el servidorMySQL.

    Con estas sencillas configuraciones ya podemos acceder a phpMyAdmin y trabajar con nuestrabase de datos a golpe de ratn, que resulta muy de agradecer teniendo en cuenta que, encaso de no tener esta herramienta u otra parecida, la otra opcin consistira en utilizar ellenguaje SQL, y, en caso de que la base de datos est alojada remotamente en Internet, nopodramos hacerlo sino es con acceso por TELNET al servidor de la base de datos.

    Referencias: En DesarrolloWeb puedes conocer ms cosas de PHP y MySQL.

    En la seccin de PHP, podras aprender mucho de PHP, algo sobre MySQL e incluso sobre el lenguaje SQL.En el directorio dedicado a MySQL hay algunas referencias a artculos y enlaces externos.

    Artculo porMiguel Angel Alvarez

    Instalar el driver ODBC para conectar con una base dedatos MySQL

    Instalar este driver sirve para que desde un sistema Microsoft Windows se pueda acceder a

    una base de datos MySQL. Las aplicaciones son variadas, por ejemplo podemos utilizarlo paracrear un DSN asociado a una base de datos MySQL, de modo que nuestras pginas ASPpodran acceder a dicha base de datos. Otra aplicacin es acceder desde Access a la base dedatos MySQL y exportar o importar datos (migrar los datos desde Access a MySQL y desdeMySQL a Access), incluso para crear un back-end de nuestra base MySQL en interfaz Access.

    Primero hay que descargar la ltima versin de Myodbc de la pgina de Mysql:http://www.mysql.com/products/connector/odbc/

    Nota: Puede que nuestro sistema tenga que actualizarse. En el ordenador que tiene el sistema WindowsXX y Access 2000 habra que actualizar a la versin 6 de Microsoft Jet:http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q239114&

    Cuando ya tenemos todo, instalamos la actualizacin de Microsoft Jet, y descomprimimos e

    instalamos el driver OBDC de Mysql. Cuando pregunta en la pantalla de Data Sources haz clicen Close para terminar.

    Una vez se ha instalado el driver ODBC, accede al panel de control de OBDC de 32 Bits (BotnInicio-> Configuracin-> Panel de control-> Fuentes de datos ODBC 32 bits).

    En este punto, tendrs que elegir si quieres utilizar el driver para un solo usuario (DSN deusuario), o para cualquier usuario del ordenador (DSN de Sistema). Una vez hayas elegidouno, haz clic en el botn de Agregar para aadir una nueva fuente de datos y a continuacin,selecciona el driver de Mysql. Aparecer la siguiente pantalla:

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    16

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/phphttp://www.desarrolloweb.com/phphttp://www.desarrolloweb.com/directorio/bases_de_datos/mysql/http://www.desarrolloweb.com/articulos/246.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/articulos/899.phphttp://www.mysql.com/products/connector/odbc/http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q239114&http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/phphttp://www.desarrolloweb.com/directorio/bases_de_datos/mysql/http://www.desarrolloweb.com/articulos/246.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/articulos/899.phphttp://www.mysql.com/products/connector/odbc/http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q239114&http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    17/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    En ella tendrs que rellenar los siguientes campos:

    Windows DSN name: Nombre de la fuente de datos que estar disponible desde Windows.Mysql host (name or IP): Nombre o direccin IP del ordenador donde se encuentra instaladoel servidor Mysql.Mysql Database Name: Nombre de la base de datos con la que se trabajar desde la fuentede datosUser: Nombre de usuario con el que se acceder al servidor de bases de datos.Password: Contrasea del usuario.Port: Sirve para especificar el puerto en el que se encuentra el servidor Mysql, hay que ponerun valor en caso de que no se est utilizando el predeterminado, que es el 3306.

    Una vez estn estas opciones configuradas, se puede hacer clic en "OK" para cerrar lasventanas.

    Artculo porCarlos Luis Cuenca

    Exportar datos de MySQL a Microsoft Access 2000

    Migrar datos de una base de datos a otra es algo a lo que muchos de nosotros hemos tenidoque confrontarnos en algn momento. A continuacin os explicamos cmo recuperarinformacin almacenada en un servidor de datos Mysql hacia una base Access 2000.

    Referencia: Para realizar esta tarea es necesario que hayamos descargado el driver ODBC y lo hayamos

    instalado en nuestro sistema Windows. Esta labor se puede conocer en un artculo de DesarrolloWeb.com:Instalar el driver ODBC para MySQL.

    Para importar una tabla de Mysql a Microsoft Access, desde Access, y con la base de datos enla que se quieren importar los datos abierta, seleccionar el menu Archivo->Obtener datosExternos->Importar. En la pantalla de Importar datos, en la opcion Tipo de archivo seleccionarODBC databases().

    Seleccionar origen de datos de equipo, y dentro de esta, el nombre de la fuente de datos quehemos creado anteriormente. Una vez la has seleccionado, y has hecho clic sobre "Aceptar",

    aparecer la pantalla de configuracin del driver por si deseas marcar para esta accin enconcreto, algunas de las opciones de configuracin que aparecen en el driver ODBC, si nodeseas marcar ninguna, clic sobre "OK".

    Nota: pudiera ser en algn caso que los tipos de los datos de la base en los sistemas MySQL y Access nosean totalmente compatibles y se produzca alguna anomalia al exportarlos. Realmente es una posibilidadque pensamos, aunque en las pruebas que hemos realizado no hemos visto ningn tipo de problema, bienes cierto que los campos que hemos trabajado no eran muy raros.

    Aparecer una ventana donde pregunta qu tabla de Mysql se desea exportar a Access:

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    17

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    18/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Selecciona la tabla , y haz clic sobre "Aceptar"

    Nota: si estamos exportando los datos hacia o desde un servidor de bases de datos alojado en algn

    proveedor de Hosting, tenemos que tener en cuenta que estos no siempre incluyen en su paquete bsicoel acceso remoto al servidor de base de datos, o requiere de un aviso explicito por parte del cliente parasu configuracin.

    Referencia: si deseamos realizar una migracin de datos en el otro sentido, es decir, desde Access haciaMySQL, ser muy indicado leer otro artculo en DesarrolloWeb que explica el proceso detalladamente.Exportar datos de Access 2000 a MySQL.

    Artculo porCarlos Luis Cuenca

    Exportar datos de Access 2000 a MySQL

    No es de extraar que hayamos comenzado a hacer nuestros pinitos en la web sirvindonos deuna base de datos sencilla como Access. Tampoco es de extraar que, llegado el momento,pasemos a cosas ms serias y nos pasemos a un servidor de datos como MySQL. Aqu osmostramos una manera bastante prctica de migrar los datos de la una a la otra.

    Referencia: Para realizar esta tarea es necesario que hayamos descargado el driver ODBC y lo hayamosinstalado en nuestro sistema Windows. Esta labor se puede conocer en un artculo de DesarrolloWeb.com:Instalar el driver ODBC para MySQL.

    Para exportar una tabla a Mysql, hay que abrir la base de datos y seleccionar la tabla.Despus, hacer clic sobre Archivo->Exportar. En la pantalla de exportar, en la opcin Guardarcomo tipo, seleccionar ODBC databases().

    Una vez se ha hecho esto, aparece una ventana que nos pregunta el nombre que le queremosdar a la tabla en Mysql, por defecto aparece el mismo.

    Haz clic sobre "Aceptar", y aparecer la pantalla en la que se pide que selecciones el origen dedatos ODBC:

    Nota: pudiera ser en algn caso que los tipos de los datos de la base en los sistemas MySQL y Access nosean totalmente compatibles y se produzca alguna anomalia al exportarlos. Realmente es una posibilidadque pensamos, aunque en las pruebas que hemos realizado no hemos visto ningn tipo de problema, bienes cierto que los campos que hemos trabajado no eran muy raros.

    Seleccionar origen de datos de equipo, y dentro de esta el nombre de la fuente de datos quehemos creado anteriormente. Una vez la has seleccionado y has hecho clic sobre "Aceptar",aparecer la pantalla de configuracin del driver por si deseas marcar para esta accin enconcreto algunas de las opciones de configuracin que aparecen en el driver ODBC. Si nodeseas marcar ninguna, haz clic sobre "OK" y los datos comenzarn a exportarse.

    Nota: si estamos exportando los datos hacia o desde un servidor de bases de datos alojado en algnproveedor de Hosting, tenemos que tener en cuenta que estos no siempre incluyen en su paquete bsicoel acceso remoto al servidor de base de datos, o requiere de un aviso explicito por parte del cliente para

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    18

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    19/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    su configuracin.

    Referencia: si deseamos realizar una migracin de datos en el otro sentido, es decir, desde MySQL haciaAccess, ser muy indicado leer otro artculo en DesarrolloWeb que explica el proceso detalladamente.Exportar datos de MySQL a Microsoft Access 2000.

    Artculo porCarlos Luis Cuenca

    Administrar y actualizar una base de datos MySQL desdeAccess

    Uno de los mayores problemas de los que adolece actualmente Mysql es el no poseer unentorno grfico que satisfaga a la mayor parte de los usuarios. Existen magnficos proyectos atravs de pgina Web, como PHPmysqlAdmin, pero muchas veces te encuentras con gente que

    le gustara tener algo parecido a un Access, posibilidad de incluir formularios para la entradade datos, o de informes sobre los datos almacenados dentro de una tabla.

    Dado que no existe hoy en da ninguna herramienta parecida al Access para trabajar conMysql, el presente artculo expondr la forma de trabajar con las bases de datos de Mysqlutilizando el entorno grfico de Access. Al terminarlo, podrs utilizar los formularios, consultase informes de Access con los datos de los ficheros de Mysql.

    De esta forma, el encargado de actualizar los datos de una pgina, podr trabajar desdeAccess, con la comodidad de los formularios, los mens desplegables etc., y los datos sernenviados automticamente a Mysql.

    Imagen de la consola de MySQL

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    19

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/865.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    20/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Formulario de Access que accede a una base de datos MySQL

    Nota: Dos imgenes que se diferencian un mundo. Con las dos se puede administraruna base de datos MySQL, una corresponde a la consola MySQL (la herramienta msbsica) y la otra a un formulario con Access, que sin duda ofrece una interfaz muchoms agradable.

    Adems, para la generacin de formularios e informes se pueden utilizar los asistentes... todo

    un ahorro de tiempo!!Referencia: Para realizar esta tarea es necesario que hayamos descargado el driver ODBC y lo hayamosinstalado en nuestro sistema Windows. Esta labor se puede conocer en un artculo de DesarrolloWeb.com:Instalar el driver ODBC para MySQL.

    Una vez tenemos el driver MyODBC instalado, lo primero que hay que hacer es crear una basede datos en blanco desde la cual se vincularn las tablas. Una vez creada, se hace clic sobre laopcin de crear nueva tabla. Aparecer la siguiente ventana en la que se seleccionar crearnueva tabla vinculada:

    Aparece la ventana de vincular una tabla de una base de datos, en la parte inferior seselecciona en tipo de archivo:

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    20

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    21/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    fuente de datos ODBC()

    Al hacer clic sobre Vincular, aparece la ventana para seleccionar un Origen de datos, seselecciona dentro de la pestaa de fuentes de datos del Equipo, la fuente de datos quecreamos en la primera parte del artculo:

    Una vez se selecciona, se hace clic sobre Aceptar, y aparece la ventana de configuracin de lafuente de datos ODBC de Mysql. Como ya esta configurada, hacemos clic sobre OK, yaparecer la ventana en la que se pueden elegir entre las tablas que contiene la base de datospara la cual hemos configurado la fuente de datos ODBC.

    Se selecciona una tabla, y a continuacin aparecer una ventana donde deberemos especificar,hasta un mximo de diez, los campos que forman parte de la clave.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    21

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    22/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Se seleccionan los campos, y se hace clic sobre aceptar.

    Aparecer una nueva tabla dentro de la base de datos de Access. A diferencia del resto detablas, esta no existe fsicamente dentro del fichero de Access, sino que todas lasmodificaciones que se realizan sobre la misma, se envan a travs de ODBC al fichero MYSQL.

    A partir de ahora, se podrn crear formularios, consultas e informes sobre esta tabla tal ycomo se hace normalmente desde Access.

    Nota: Algunos proveedores de Hosting no incluyen en su paquete bsico el acceso remoto al servidor debase de datos, o requiere de un aviso explicito por parte del cliente para su configuracin.

    Artculo porCarlos Luis Cuenca

    Connector/J

    Mysql Connector es un driver creado por Mysql AB que te permitir trabajar con Mysql desdeprogramas escritos en Java. A diferencia de otros drivers, este es de libre distribucin, y tieneun buen rendimiento.

    MySQL Connector/J es un driver nativo de Java que convierte las llamadas generadas por JDBCen el protocolo de red que utiliza la base de datos de Mysql. Permite al desarrollador trabajarcon el lenguaje de programacin Java y de esta forma construir programas que interactuancon Mysql.

    El MySQL Connector/J es un driver JDBC tipo IV y contiene todas las caracteristicas de JDBC

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    22

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    23/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    para manejar Mysql.

    En el desarrollo de las ltimas versiones se ha incrementado bastante la velocidad del driver,

    ganando en rapidez asi como en eficiencia. El driver soporta resultados de datos "streaming" loque permite al usuario recoger un gran nmero de filas sin la necesidad de utilizar un buffer dememoria. El driver implementa un protocolo de paquetes grande que permite enviar filas ycampos BLOBs de hasta 2 GigaBytes. En la versin de desarrollo del mismo se implementanlas nuevas caractersticas aadidas en el API 3.0 de JDBC.

    El driver ha sido probado para trabajar con las siguientes herramientas de bases de datos yservidor de aplicaciones:

    Apache Jboss BEA Weblogic IBM VisualAge for Java IBM WebSphere Application Server 4.0 Forte for Java Oracle SQL/J TableGen

    Descarga

    Para instalar el driver hay que descargarlo de la pgina de Mysql Connector/J

    Artculo porCarlos Luis Cuenca

    Copias de seguridad en MySQL

    El gestor de Bases de datos MySQL incluye varias herramientas para la realizacin de copias deseguridad de la base de datos. Mediante ellas podremos poner a salvo nuestros datos, paraque, en el eventual caso de que se pierdan, poderlos recuperar.

    A la hora de hacer una copia de seguridad, lo primero que se hay que tener en cuenta es laintegridad de los datos que se estn guardando. En todos los casos es necesario que hayaintegridad en los datos de una tabla, con esto quiero decir que todos los datos de la tabladebern estar escritos en la misma, esto puede sonar un poco raro, pero tal y como pasa contodos los gestores de bases de datos, Mysql dispone de diversas "caches" en las que se

    almacenan datos temporalmente con el objetivo de mejorar en rendimiento, de forma que porejemplo, una vez hecha una modificacin en una tabla, puede ser que los datos no se guardeninmediatamente en disco, hasta que termine, por ejemplo, una consulta que se estabaejecutando. Por esto, es necesario "forzar" a Mysql a escribir todos los datos en el disco,mediante la sentencia "Flush Tables".

    Adems es necesario que no se escriba en las tablas mientras se esta haciendo la copia deseguridad de la base de datos, que se consigue con el comando "lock tables", seguido delnombre de la tabla. Puede haber bases de datos en las que sea necesario bloquear todas lastablas al mismo tiempo antes de hacer la copia de seguridad.

    Existen varias opciones para realizar la copia de seguridad de una base de datos de Mysql,

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    23

    http://www.desarrolloweb.com/http://www.mysql.com/downloads/api-jdbc-stable.htmlhttp://www.desarrolloweb.com/manuales/34/http://www.mysql.com/downloads/api-jdbc-stable.htmlhttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    24/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    En primer lugar, se podra utilizar alguna herramienta comercial que gestione todo elproceso, esto tiene como ventaja la simplicidad del mtodo, y como inconveniente, queno suelen ser gratis, sino que hay que pagar licencia por la utilizacin de los mismos.

    Estas herramientas no se cubrirn en este reportaje. En segundo lugar, y a partir de la versin 3.23.25 y posteriores, existe la posibilidad de

    realizar una copia de seguridad a travs de la sentencia sql "backup table". Como tercera opcin, es posible realizar copias de seguridad a travs de las

    herramientas que nos proporciona el propio gestor de base de datos, como pueden sermysqldump mysqlhotcopy.

    Referencia: llegado a este punto necesitars acceder a los siguientes artculos, en los que se detalla elproceso de creacin de las copias de seguridad MySQL por dos mtodos:- Backup MySQL mediante Sentencias Sql- Backup MySQL con mysqldump

    Artculo porCarlos Luis Cuenca

    Backup MySQL mediante Sentencias Sql

    Veremos cmo realizar una copia de seguridad de la tabla y su recuperacin a partir desentencias SQL.

    Backup de los datos

    Este comando nos permite hacer una copia de los ficheros de las tablas de las cuales queremoshacer un backup, actualmente solo funciona con tablas de tipo MyIsam, y copia tanto los

    ficheros .frm que contienen la definicin de la tabla, como los ficheros .myd, que contienen losdatos.

    Antes de ejecutarse, guarda todos los cambios que pudiera haber en memoria de la tabla, deforma que quede de una manera consistente. Asimismo, durante la ejecucin del comando,bloquea la tabla sobre la que se est haciendo la copia de seguridad para que los datos seanconsistentes en la tabla. Hay que tener en cuenta que este comando va bloqueando una a unalas tablas, segn va haciendo la copia de seguridad. Esto podra provocar inconsistencia dedatos a nivel de base de datos, si es necesario hacer un backup de todas las tablas en uninstante, en cuyo caso habra que utilizar el comando "lock tables" para bloquear todas lastablas antes de comenzar la copia de seguridad.

    Al finalizar el comando devuelve una tabla, que contiene los campos:Columna Valores

    Table Nombre de la tabla

    Op Siempre pone "backup"Msg_type Puede contener status, error, info o warning.

    Msg_text Mensaje descriptivo del resultado de la operacin

    Y en la que hay un registro por cada tabla que sobre la que se ha hecho backup.

    Para realizar una copia de una tabla llamada pedidos, a la carpeta Backups:

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    24

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/1181.phphttp://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/1181.phphttp://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    25/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    BACKUP TABLE pedidos TO `/backups/`

    Recuperacin de datos

    Para complementar la sentencia "Backup table", Mysql dispone de la sentencia "Restore table",que permite restaurar una tabla a partir de una copia de seguridad que se ha realizado con elcomando "Backup Table".

    Esta opcin solo se puede utilizar si la tabla que se pretende restaurar no se encuentra en labase de datos, ya que en caso afirmativo mostrar un mensaje de error. Al igual que elcomando de Backup, esta opcin slo esta disponible para las tablas de tipo MyIsam, y a partirde la versin 3.23.25.

    Como el comando de backup, no copia los ficheros de ndices, el comando para recuperar losdatos, vuelve a reindexar todos los campos que contienen ndices, creando los ficheroscorrespondientes. Al igual que el comando para hacer copias de seguridad, invocar al comando"Restore table" devuelve una tabla, con un registro por cada tabla sobre la que se ha hecho labase de datos, y que contiene la siguiente informacin:

    Columna Valores

    Table Nombre de la tablaOp Siempre pone "restore"

    Msg_type Puede contener status, error, info o warning.Msg_text Mensaje descriptivo del resultado de la operacin

    Para restaurar una tabla llamada pedidos de la carpeta Backups a la base de datos:

    RESTORE TABLE pedidos FROM `/backups/`Referencia: Para continuar aprendiendo mtodos para realizar un backup de una base de datos MySQLtenemos el artculo Backup MySQL con mysqldump, que ensea a manejar el comando mysqldump parahacer una copia de seguridad de la base de datos entera.

    Artculo porCarlos Luis Cuenca

    Backup MySQL con mysqldump

    Este comando permite hacer la copia de seguridad de una o mltiples bases de datos. Adems

    permite que estas copias de seguridad se puedan restaurar en distintos tipos de gestores debases de datos, sin la necesidad de que se trate de un gestor de mysql. Esto lo consiguecreando unos ficheros, que contienen todas las sentencias sql necesarias para poder restaurarla tabla, que incluyen desde la sentencia de creacin de la tabla, hasta una sentencia insertpor cada uno de los registros que forman parte de la misma.

    El comando dispone de una amplia variedad de opciones que nos permitir realizar la copia dela forma ms conveniente para el propsito de la misma.Para poder restaurar la copia de seguridad, bastar con ejecutar todas las sentencias sql quese encuentran dentro del fichero, bien desde la lnea de comandos de mysql, o desde lapantalla de creacin de sentencias sql de cualquier entorno grfico como puede ser el MysqlControl Center.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    25

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    26/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Las limitaciones de la restauracin dependern de las opciones que se han especificado a lahora de hacer la copia de seguridad, por ejemplo, si se incluye la opcin --add-drop-table al

    hacer la copia de seguridad, se podrn restauran tablas que existen actualmente en el servidor(borrndolas primero). Por lo que es necesario estudiar primero los procedimientos que seutilizarn tanto en la copia como en la restauracin, para que todo salga correcto!

    Algunas de las opcines que tiene son:

    --add-locksAade LOCK TABLES antes, y UNLOCK TABLE despues de la copia de cada tabla.

    --add-drop-tableAade un drop table antes de cada sentencia create

    -A, --all-databasesCopia todas las bases de datos. Es lo mismo que utilizar --databases seleccionando todas.

    -a, --allIncluye todas las opciones de creacin especficas de Mysql.

    --allow-keywordsPermite la creacin de nombes de columnas que son palabras clave, esto se realiza poniendode prefijo a cada nombre de columna, el nombre de la tabla

    -c, --complete-insertUtiliza inserts incluyendo los nombres de columna en cada sentencia (incrementa bastante eltamao del fichero)

    -C, --compressComprime la informacin entre el cliente y el servidor, si ambos soportan compresin.

    -B, --databasesPara copiar varias bases de datos. En este caso, no se especifican tablas. El nombre de losargumentos se refiere a los nombres de las bases de datos. Se incluir USE db_name en lasalida antes de cada base de datos.

    --delayedInserta las filas con el comando INSERT DELAYED.

    -e, --extended-insertUtiliza la sintaxis de INSERT multilinea. (Proporciona sentencias de insert ms compactas yrpidas.)

    -#, --debug[=option_string]Utilizacin de la traza del programa (para depuracin).

    --helpMuestra mensaje de ayuda y termina.

    --fields-terminated-by=...--fields-enclosed-by=...--fields-optionally-enclosed-by=...--fields-escaped-by=...--lines-terminated-by=...Estas opciones se utilizan con la opcin -T y tienen el mismo significado que la correspondienteclusula LOAD DATA INFILE.

    -F, --flush-logsEscribe en disco todos los logs antes de comenzar con la copia

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    26

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    27/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    -f, --force,Contina aunque se produzca un error de SQL durante la copia.

    -h, --host=..

    Copia los datos del servidor de Mysql especificado. El servidor por defecto es localhost.-l, --lock-tables.Bloquea todas las tablas antes de comenzar con la copia. Las tablas se bloquean con READLOCAL para permitir inserts concurrentes en caso de las tablas MyISAM. Cuando se realiza lacopia de mltiples bases de datos, --lock-tables bloquear la copia de cada base de datos porseparado. De forma que esta opcin no garantiza que las tables sern consistenteslgicamente entre distintas bases de datos. Las tablas en diferentes bases de datos secopiarn en estados completamente distintos.

    -K, --disable-keysSe inluir en la salida /*!40000 ALTER TABLE tb_name DISABLE KEYS */; y /*!40000 ALTERTABLE tb_name ENABLE KEYS */; Esto har que carga de datos en un servidor MySQL 4.0 se

    realice ms rpido debido a que los ndices se crearn despus de que todos los datos hayansido restaurados.

    -n, --no-create-dbNo se incluir en la salida CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; Esta lnease incluye si la opcin --databases o --all-databases fue seleccionada.

    -t, --no-create-infoNo incluir la informacin de creacin de la tabla (sentencia CREATE TABLE).

    -d, --no-dataNo incluir ninguna informacin sobre los registros de la tabla. Esta opcin sirve para crearuna copia de slo la estructura de la base de datos.

    --optLo mismo que --quick --add-drop-table --add-locks --extended-insert --lock-tables. Esta opcinle debera permitir realizar la copia de seguridad de la base de datos de la forma ms rpida yefectiva.

    -pyour_pass, --password[=your_pass]Contrasea utilizada cuando se conecta con el servidor. Si no se especifica, `=your_pass',mysqldump preguntar la contrasea.

    -P, --port=...Puerto utilizado para las conexiones TCP/IP

    --protocol=(TCP | SOCKET | PIPE | MEMORY)Especifica el protocolo de conexin que se utilizar.

    -q, --quickNo almacena en el buffer la sentencia, la copia directamente a la salida. Utilizamysql_use_result() para realizarlo.

    -Q, --quote-namesEntrecomilla las tablas y nombres de columna con los caracteres ``'.

    -r, --result-file=...Redirecciona la salida al fichero especificado. Esta opcin se debera utilizar en MSDOS, porquepreviene la conversin de nueva lnea `\n' en nueva lnea y retorno de carro`\n\r'.

    --single-transactionUtiliza el comando BEGIN antes de realizar la copia desde el servidor. Es muy til con las tables

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    27

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    28/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    InnoDB y el nivel de transaccin READ_COMMITTED, porque en este modo realizar la copia deseguridad en un estado consistente sin necesidad de bloquear las aplicaciones. Consultar elmanual para ms detalles.

    -S /path/to/socket, --socket=/path/to/socketEl fichero de sockets que se especifica al conectar al localhost (que es el host predeterminado).

    --tablessobreescribe la opcin --databases (-B).

    -T, --tab=path-to-some-directoryCrea un fichero table_name.sql, que contiene la sentencia de creacin de SQL, y un ficherotable_name.txt, que contiene los datos de cada tabla. El formato del fichero `.txt' se realiza deacuerdo con las opciones --fields-xxx y --lines--xxx options. Nota: Esta opcin slo funciona siel comando mysqldump se ejecuta en la misma msquina que el demonio mysqld, el usuariodeber tener permisos para crear y escribir el fichero en la ubicacin especificada

    -u nombre_usuario, --user=nombre_usuarioEl nombre de usuario que se utilizar cuando se conecte con el servidor, el valorpredeterminado es el del usuario actual.

    -v, --verboseVa mostrando informacin sobre las acciones que se van realizando (ms lento)

    -w, --where='clusula where'Sirve para realizar la copia de determinados registros

    -X, --xmlRealiza la copia de seguridad en un documento xml

    -x, --first-slaveBloquea todas las tablas de todas las bases de datos

    Ejemplos de comandos mysqldump:

    Para realizar la copia se seguridad de la base de datos mibase al fichero copia_seguridad.sql

    mysqldump --opt mibase > copia_seguridad.sql

    Otro ejemplo ms complejo de comando mysqldump para hacer el backup de una base dedatos es el siguiente:

    mysqldump --opt --password=miclave --user=miuser mibasededatos > archivo.sql

    En este ltimo caso estamos indicando un nombre de usuario y una clave para acceder a la

    base de datos sobre la que se est haciendo el backup: mibasededatos. Las sentencias SQLpara reconstruir esa base de datos se volcarn en el fichero archivo.sql.

    Restaurar la base de datos

    Si deseamos recuperar la informacin de un fichero para restaurar una copia de seguridad dela base de datos lo haremos con el comando mysql. Utilizaremos una sintaxis como esta:

    mysql mibase < archivo.sql

    En este ejemplo se restaurara la base de de datos mibase con el backup almacenado en elfichero archivo.sql.

    Otro ejemplo ms complejo de comando para restaurar una base de datos es el siguiente:

    mysql --password=miclave --user=miuser mibase < archivo.sql

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    28

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    29/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Es el mismo ejemplo que el anterior, pero indicando un nombre de usuario y una clave con lasque acceder a la base de datos mibase.

    Artculo porCarlos Luis Cuenca

    Subir una base de datos al sevidor de Internet

    Aparte de los archivos de la pgina, debemos subir la base de datos con la que tenemos quetrabajar. Las bases de datos con las que trabaja PHP son muy variadas y en distintos casospodemos utilizar una u otra, por lo que los modos de subir la base de datos tambin puedenvariar.

    Referencia: Este artculo y los sucesivos, que tratan sobre subir una base de datos MySQL al servidor, se

    engloban tanto dentro delManual de PHP como del Taller de MySQL. Por ello, ser importante disponer deconocimientos de ambas tecnologas para entender y aprovechar estas explicaciones.

    Es muy corriente que nuestro proveedor de hosting ofrezca junto con PHP la base de datosMySQL, as que las notas para subir esa base de datos al servidor de este artculo vanencaminadas a ofrecer soluciones para esa base de datos.

    La base de datos MySQL no se puede subir por FTP, como que se haca con los archivos delcdigo PHP. Para subirla tendremos que utilizar otros mecanismos. Voy a distinguir entre trescasos distintos en los que nos podramos encontrar en este momento:

    1. La base de datos que pretendemos subir est vaca. Tan slo hemos creado lastablas, pero no hemos introducido datos en ellas o, a lo sumo, tienen algn dato que

    hemos introducido de pruebas.2. La base de datos que queremos subir est completa y es una base de datosMySQL. En este caso tenemos creada la base de datos en local y con toda lainformacin dentro y, por supuesto, queremos que esa informacin quede tambin en labase de datos remota.

    3. La base de datos est completa (como el caso anterior), pero no es una base dedatos MySQL. En este caso estaramos haciendo una migracin de la base de datos deun sistema gestor a otro.

    Veremos los tres casos por separado en adelante, aunque, antes de ello, vamos a mostrarunas herramientas que nos servirn de mucha ayuda para la administracin de cualquier basede datos remota.

    Las herramientas en concreto se relatan en el manual Taller de MySQL, son las siguientes: PhpMyAdmin. Una aplicacin creada en PHP que podemos instalar en nuestro espacio

    de alojamiento para administrar la base de datos. Mysql Control Center (en adelante MyCC). Una aplicacin Windows que permite

    contectarse a mltiples bases de datos MySQL, que se encuentren en local o en remoto. Access. Tambin permite administrar una base de datos MySQL conectada en local o en

    remoto. En este caso se utiliza una interfaz que muchos ya conocen, como es Access,para administrar una base de datos que nada tiene que ver con dicho programa.

    En los tres casos lo que nos permite realizar el software de administracin son tareas sobre labase de datos de todo tipo, como pueden ser crear tablas, modificarlas, insertar datos,borrarlos, editarlos. Modificar o borrar tablas o campos de las mismas, etc.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    29

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/12/http://www.desarrolloweb.com/manuales/12/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/898.phphttp://www.desarrolloweb.com/articulos/899.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/12/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/898.phphttp://www.desarrolloweb.com/articulos/899.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    30/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    La eleccin de una herramieta o de otra pasa por los recursos que nos permitan utilizar ennuestro proveedor. Bsicamente, lo que nos puede decantar a una opcin u otra, es si

    permiten o no conectar de manera remota la base de datos MySQL. Conozco alojamientosdonde se permite esa conexin remota y donde no.

    Si no permiten conectarnos remotamente nos decantaremos por PhpMyAdmin, pues es unaaplicacin PHP que se conecta en local y a la que se accede desde una pgina web y eso lopermiten todos los proveedores, incluso hay muchos que tienen instalado ya este softwarepara administrar las bases de datos.

    En caso de que s nos permitan conectarnos remotamente con la base de datos, eligiremosMyCC o Access, que son aplicaciones Windows mucho ms potentes y rpidas que las queutilizan interfaz web, como PhpMyAdmin. Es preferible utilizar MyCC porque estespecialmente desarrollado para conectar y operar con bases de datos MySQL.

    Artculo porMiguel Angel Alvarez

    Subir base de datos MySQL vaca al servidor

    Es muy normal que hayamos diseado una base de datos para nuestro proyecto desde 0,definiendo las distintas entidades de nuestro modelo de datos, junto con sus campos y sustipos.

    En estos casos lo ms probable es que la base de datos est vaca, o bien contenga datos quehayamos introducido a modo de prueba y que no queramos conservar cuando subamos laaplicacin a Internet.

    La opcin ms interesante entonces podra ser crear otra vez las tablas que tenemos en localen la base de datos remota. Para ello tenemos dos posibilidades.

    a) Si tenemos pocas tablas y bastante sencillas

    Las podemos crear en remoto con alguna herramienta como PhpMyAdmin o MyCC.

    b) Si tiene muchas tablas y/o muy complicadas

    La recomendacin sera hacer un backup de la estructura en local y restaurarla en remoto.Esto nos evitar tener que volver a crear todas las tablas y definir todos sus campos y sustipos. Puede ser un poco ms complicado pero sin duda nos ahorrar tiempo.

    Para hacer el backup de la estructura en local podemos utilizar alguna herramienta comoPhpMyAdmin, o bien utilizar el comando mysqldump desde lnea de comandos de MS-DOS.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    30

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/898.phphttp://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/898.phphttp://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    31/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Herramienta de backup de PhpMyAdmin. Est marcada laopcin de extraer solamente la estructura de las tablas. Simarcamos adems la casilla "Send", nuestro navegador sedescargar el backup en un fichero de texto. Si no lopulsamos simplemente se visualizar.

    Lo que tenemos que hacer en este caso es un backup de la estructura de la base de datos, esdecir, los "create tables" o sentencias SQL para crear las tablas. Sera un montn de sentenciascon esta forma:

    # --------------------------------------------------------## Table structure for table 'comentario'#

    CREATE TABLE comentario (id_comentario int(5) unsigned NOT NULL auto_increment,id_articulo int(4) DEFAULT '0' NOT NULL,

    comentario text NOT NULL,fecha int(14) unsigned DEFAULT '0' NOT NULL,revisado tinyint(1) DEFAULT '0' NOT NULL,nombre_comentario varchar(100) DEFAULT 'Nombre no especificado' NOT NULL,email_comentario varchar(100) DEFAULT 'Email sin especificar' NOT NULL,tipo tinyint(1) unsigned DEFAULT '1' NOT NULL,PRIMARY KEY (id_comentario)

    );

    Para restaurar estas sentencias tenemos opciones tanto dentro de PhpMyAdmin como deMyCC. En ambos casos lo que tenemos que hacer es ejecutar estas sentencias en el servidorMySQL remoto. En PhpMyAdmin tenemos un campo para introducir sentencias SQL y tambinotro campo para seleccionar un archivo de texto con todas las sentencias SQL, para ejecutarlasuna detrs de otra. En MyCC tenemos un botn que nos permite abrir una consola dondeintroducir una o varias sentencias SQL y ejecutarlas.

    Herramienta de backup y restauracin de PhpMyAdmin

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    31

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    32/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Botn para introducir sentencias SQL en MyCC

    Repetimos, esto slo nos servir para subir la estructura de la base de datos y no los datosque contenga. Si deseamos subir tambin la informacin de la base de datos entoncesdebemos utilizar otras estrategias, relatadas prximamente.

    Artculo porMiguel Angel Alvarez

    Subir una base de datos MySQL con la estructura y losdatos

    Si la base de datos que deseamos subir est llena de informacin y deseamos que se conserveuna vez subida la base de datos a remoto, tenemos que realizar un backup de la base de datosy restaurarlo en remoto.

    Nota: Estas recomendaciones estn pensadas para subir una base de datos MySQL que podamos tener enlocal a una base de datos MySQL que hayamos contratado en remoto. Si la base origen no es MySQLestaramos hablando de una migracin de bases de datos, pero esto lo veremos en unartculo msadelante.

    En este caso el procedimiento sera muy parecido al de subir una base de datos vaca, relatadoanteriormente, con la salvedad de que ahora debemos extraer no solo la estructura de la basede datos, sino tambin los registros que contiene.

    Para ello podemos utilizar mysqldump, segn se relata en este artculo, o bien PhpMyAdmin,seleccionando la opcin que indica que el backup contenga la estructura y los datos (Structureand data en versiones en ingls).

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    32

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/1213.php?manual=12http://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/1213.php?manual=12http://www.desarrolloweb.com/articulos/1202.phphttp://www.desarrolloweb.com/articulos/844.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    33/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    La estructura y los datos vendrn en un fichero de texto con una serie de sentencias SQL paracrear las tablas y los insert necesarios para introducir cada uno de los datos.

    Para restaurar la base de datos lo haremos tal como se ha relatado para el caso de que la basede datos estuviera vaca, con la ayuda de una instalacin de PhpMyAdmin en remoto o unMyCC que se conecte a la base de datos contratada en el servidor de Internet.

    Si tenemos problemas para subir el fichero de backup de la base de datos es posible que ennuestro proveedor de alojamiento nos pueda ayudar a subir el fichero y restaurarlo. Como elproveedor dispone de los servidores en sus propias instalaciones, tiene muchas msposibilidades que nosotros para trabajar con las bases de datos, sin temor a que las lentascomunicaciones por Internet arrojen errores en la restauracin de los datos.

    Si nuestro proveedor no puede ayudarnos, seguramente disponga y nos indique algnmecanismo para realizar la tarea sin lugar a errores. Puede ocurrinos con algn proveedor quenos diga que se encarga de todo pero nos exija el pago de las horas de trabajo del informticoque va a restaurar el backup de la base de datos. Si no pone facilidades ni siquiera en estoposiblemente sea mejor ir pidindoles que nos devuelvan el dinero invertido porque su serviciono sera muy bueno.

    Artculo porMiguel Angel Alvarez

    Migrar una base de datos a MySQL

    El ltimo caso en el que nos podemos encontrar a la hora de subir una base de datos a nuestroproveedor de alojamiento es que la base de datos la tengamos creada en local, pero en unsistema gestor distinto del que vamos a utilizar en remoto. En remoto suponemos siempre quevamos a utilizar la base de datos MySQL. En local podramos disponer de una base de datosAccess, SQL Server o de otro sistema de base de datos.

    El proceso de la migracin puede ser bastante complejo y, como hay tantas bases de datosdistintas, difcil de dar una receta que funcione en todos los casos. Adems, aparte de ladificultad de transferir la informacin entre los dos sistemas gestores de base de datos,tambin nos influir mucho en la complejidad del problema el tipo de los datos de las tablasque estamos utilizando. Por ejemplo, las fechas, los campos numricos con decimales o losboleanos pueden dar problemas al pasar de un sistema a otro porque pueden almacenarse demaneras distintas o, en el caso de los nmeros, con una precisin distinta.

    Recomendaciones para migrar de Access a MySQL

    Si nuestra base de datos anterior estaba construida en Access lo tenemos bastante fcil,gracias a que MySQL dispone de un driver ODBC para sistemas Windows, que nos permiteconectar Access con el propio MySQL y pasar informacin fcilmente.

    Este tema est relatado en el artculo Exportar datos de MySQL a Access, aunque hay queindicar que si deseamos hacer una exportacin desde Access en local a MySQL en remotopuede haber problemas porque no todos los alojadores permiten las conexiones en remoto conla base de datos. Si no tenemos disponible una conexin en remoto con nuestro servidor debases de datos vamos a tener que cambiar la estrategia un poco.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    33

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/directorio/bases_de_datos/mysql/http://www.desarrolloweb.com/directorio/bases_de_datos/access/http://www.desarrolloweb.com/directorio/bases_de_datos/sql_server/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/directorio/bases_de_datos/mysql/http://www.desarrolloweb.com/directorio/bases_de_datos/access/http://www.desarrolloweb.com/directorio/bases_de_datos/sql_server/http://www.desarrolloweb.com/articulos/897.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/articulos/867.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    34/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    La idea en este ltimo caso es instalar MySQL en local y realizar la migracin desde Access enlocal a MySQL en local y luego podramos hacer un backup de la base de datos local y subirla a

    remoto, tal y como se ha relatado antes.Recomendaciones para migrar desde SQL Server a MySQL

    La verdad es que no he tenido este caso nunca, pero hay que decir que Access tambin nospuede ayudar en este caso. Access permite seleccionar una base de datos SQL Server ytrabajar desde la propia interfaz de Access. La idea es que Access tambin permite trabajarcon MySQL y posiblemente haciendo un puente entre estos dos sistemas gestores podemosexportar datos de SQL Server a MySQL.

    Lo que es seguro que utilizando el propio Access de puente podramos realizar el trabajo.Primero exportando de SQL Server a Acess y luego desde Access a MySQL.

    Otras bases de datos u otras tcnicas

    Si la base de datos origen dispone de un driver ODBC no habr (en teora) problema paraconectarla con Access, de manera similar a como se conecta con MySQL. Entonces podramosutilizar Access para exportar los datos, porque desde all se podran acceder a los dos sistemasgestores de bases de datos.

    Si no tenemos Access, o la base de datos original no tiene driver ODBC, o bien no nos funcionacorrectamente el proceso y no sabemos cmo arreglarlo, otra posibilidad es exportar los datosa ficheros de texto, separados por comas o algo parecido. Muchas bases de datos tienenherramientas para exportar los datos de las tablas a ficheros de texto, los cuales se puedenluego introducir en nuestro sistema gestor destino (MySQL) con la ayuda de alguna

    herramienta como PhpMyAdmin.

    Para ello, en la pgina de propiedades de la tabla encontraremos una opcin para hacer elbackup de la tabla y para introducir ficheros de texto dentro de una tabla (Insert textfiles intotable en ingls).

    Accediendo a ese enlace podremos ver un formulario donde introducir las caractersticas delfichero de texto, como el carcter utilizado como separador de campos, o el terminador delneas, etc, junto con el propio archivo con los datos, y PhpMyAdmin se encargar de todo eltrabajo de incluir esos datos en la tabla.

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    34

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/articulos/1230.phphttp://www.desarrolloweb.com/articulos/1230.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/articulos/1230.phphttp://www.desarrolloweb.com/articulos/1230.phphttp://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    35/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Como se habr supuesto, es necesario tener creada la tabla en remoto para que podamosintroducirle los datos del fichero de texto.

    Cambios de un formato de datos a otroToda la migracin tiene que tener en cuenta muy especialmente, como ya se seal, lasmaneras que tenga cada base de datos de guardar la informacin, es decir, del formato de sustipos de datos. Tenemos que contar siempre con la posible necesidad de transformar algunosdatos como pueden ser los campos boleanos, fechas, campos memo (texto con longitudindeterminada), etc, que pueden almacenarse de maneras distintas en cada uno de lossistemas gestores, origen y destino.

    En algunos casos posiblemente tengamos que realizar algn script que realice los cambiosnecesarios en los datos. Por ejemplo puede ser para localizar los valores boleanos guardadoscomo true / false a valores enteros 0 / 1, que es como se guarda en MySQL. Tambin lasfechas pueden sufrir cambios de formato, mientras que en Access aparecen en castellano (dd/mm/aaaa) en MySQL aparecen en el formato aaaa-mm-dd. PHP puede ayudarnos en la tareade hacer este script, tambin Visual Basic Script para Access puede hacer estas tareascomplejas y el propio lenguaje SQL, a base de sentencias dirigidas contra la base de datos,puede servir para algunas acciones sencillas.

    Artculo porMiguel Angel Alvarez

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    35

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/manuales/34/http://www.desarrolloweb.com/
  • 7/31/2019 Manual Taller Mysql

    36/50

    Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    MySQL por lnea de comandos

    Es muy normal que utilicemos MySQL a travs de pginas PHP y para administrar la base dedatos utilicemos un programa como PhpMyAdmin, pero a veces no nos queda otro remedio queacceder a la base de datos a travs de la lnea de comandos.

    MySQL tiene un programa, que se llama con el mismo nombre de la base de datos (mysql) quesirve para gestionar la base datos por lnea de comandos. Ese programa, en una instalacin deWindows se encuentra en un directorio como

    C:\Archivos de programa\MySQL\MySQL Server 4.1\bin

    El directorio puede variar, por ejemplo, puede estar localizado en la raz del disco C:, o encualquier otro lugar donde podamos haber instalado MySQL. Para acceder a la consola deMySQL en Windows tendremos que estar situados dentro de ese directorio.

    En Linux, por supuesto, tambin se puede acceder a MySQL por lnea de comandos.Posiblemente desde cualquier directorio podamos acceder a la consola de MySQL, sinnecesidad de situarse en el directorio donde est instalado.

    Conectar con el servidor MySQL

    Lo primero que tendremos que hacer es conectar con el sistema gestor de MySQL. Para ello,desde la lnea de comandos invocamos a MySQL. Para ello, simplemente tenemos que escribirel comando "mysql" e indicarle unas opciones de conexin.

    % mysql

    Con el "%" expresamos el principio de la lnea de comandos. Ese principio es el prompt quetengamos en nuestra consola de Linux o MsDOS, que puede ser algo como c:\mysql\bin>. Elcarcter "%", por tanto, no tenemos que escribirlo.

    Con esa sentencia se conecta uno con la base de datos con los parmetros por defecto. Esdecir, al servidor local, con usuario y password igual a cadenas vacas.

    Lo ms normal es que tengamos que indicar algn otro dato para conectar con la base dedatos, como el usuario, la clave o la direccin del servidor con el que queremos conectar. Lasintaxis sera la siguiente:

    % mysql -h nombre_servidor -u nombre_usuario -pSi deseamos conectarnos a la base de datos en local y con nombre de usuario root tendramosque escribir:

    % mysql -h localhost -u root -p

    Lo primero que nos preguntar ser el password para el usuario root. Una vez introducida laclave, ya estaremos dentro de la lnea de comandos de MySQL. Con ello el prompt cambiar aalgo como esto:

    mysql>

    Taller de MySQL: http://www.desarrolloweb.com/manuales/34/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

    36

    http://www.desarrolloweb.com/http://www.desarrolloweb.com/manuales/34/http://www.de