Top Banner
Taller de MySQL http://desarrolloweb.com/manuales/taller-mysql.html Página 1 de 117
117

Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Sep 06, 2018

Download

Documents

phungkhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 1 de 117

Page 2: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 2 de 117

Introducción:TallerdeMySQL

DiversosartículosprácticossobreeltrabajoconlabasededatosMySQL,quecubrenaspectosdesdesuinstalaciónaltrabajohabitual.

Encuentrasestemanualonlineen:http://desarrolloweb.com/manuales/taller-mysql.html

Page 3: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 3 de 117

Autoresdelmanual

Lassiguientespersonashanparticipadocomoautoresescribiendoartículosdeestemanual.

MiguelAngelAlvarez

MiguelesfundadordeDesarrolloWeb.comylaplataformadeformaciónonlineEscuelaIT.Comenzóenelmundodeldesarrollowebenelaño1997,transformandosuhobbyensutrabajo.

CarlosLuisCuenca

HeislerPalma

Programadorautodidacta,músicoeinvestigadordelamente.

RubénAlvarez

RubénesdoctorenquímicayprogramadoraficionadoconexperienciaenPHP.

Page 4: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 4 de 117

RussvellOblitasValenzuela

Bch.SistemaseInformática

ManuGutierrez

Page 5: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 5 de 117

InstalacióndeMySQLenWindows

PasosaseguirparalainstalacióndelabasededatosMySQLyalgunasayudasbásicasparacomenzarconbuenpie.

UnodelospuntosfuertesdelaspáginasenPHPeslaposibilidaddeexplotarbasesdedatosmediantefuncionesdeunasimplicidadypotenciamuyagradecidas.Estasbasesdedatospuedenserviranuestrositioparaalmacenarcontenidosdeunaformasistemáticaquenospermitaclasificarlos,buscarlosyeditarlosrápidayfácilmente.

Unabasededatosessencillamenteunconjuntodetablasenlasquealmacenamosdistintosregistros(artículosdeunatiendavirtual,proveedoresoclientesdeunaempresa,películasencarteleraenelcine...).Estosregistrossoncatalogadosenfuncióndedistintosparámetrosqueloscaracterizanyquepresentanunautilidadalahoradeclasificarlos.Así,porejemplo,losartículosdeunatiendavirtualpodríancatalogarseapartirdedistintoscamposcomopuedeserunnúmerodereferencia,nombredelartículo,descripción,precio,proveedor...

LabasededatosmásdifundidaconeltandemUNIX-ApacheessindudaMySQL.ComoparaelcasodeApache,unaversiónparaWindowsestádisponibleypuedeserdescargadagratis.

Supuestaapuntonoentrañamuchadificultad.UnavezinstaladoelprogramapodemosejecutarnuestrasordenesenmodoMS-DOS.ParaelloabrimosunaventanaMS-DOSynoscolocamoseneldirectoriobindemysql.Enestedirectorioseencuentranlosarchivosejecutables.Aquíhabráqueencontrarunarchivollamadomysqld.Enelcasodelaversiónmásactualdurantelaredaccióndeestearticuloestearchivoesllamadomysqld-shareware.Unavezejecutadoestearchivopodemosejecutarelsiguiente:mysql.

Llegadosaestepuntoveremoscómounmensajedebienvenidaapareceennuestrapantalla.Enestosmomentosnosencontramosdentrodelabasededatos.ApartirdeahípodemosrealizartodotipodeoperacionesporsentenciasSQL.

Novamosaentrarenunaexplicaciónpormenorizadadelfuncionamientodeestabasededatosyaqueestonosdaríaparaunmanualentero.DaremoscomoreferencianuestrotutorialdeSQLapartirdelcualsepuedetenerunaideamuyprácticadelassentenciasnecesariasparalacreaciónyedicióndelastablas.TambiénexisteunadocumentaciónextensaeningléseneldirectorioDocsdeMySQL.Amododeresumen,aquíosproponemosademáslasoperacionesmásbásicasque,combinadasnuestrotutorialdeSQLpuedendarsoluciónagranpartedeloscasosqueseospresenten:

Page 6: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 6 de 117

Paraevitarnoseltenerqueeditarnuestrastablasdirectamentesobrearchivosdetexto,puederesultarmuyprácticousarcualquierotrabasededatosconuneditoryexportaracontinuaciónlatablaenunarchivodetextoconfiguradoparadejartabulacionesentrecadacampo.EstoesposibleenAccessporejemplopinchandoconelbotónderechosobrelatablaquequeremosconvertiryeligiendolaopciónexportar.Unaventanadedialogoapareceráenlaqueelegiremosguardarelarchivoentipotexto.Elpasosiguienteseráelegirunformatodelimitadoportabulacionessincualificadordetexto.

OtraposibilidadquepuederesultarmuyprácticayquenosevitatrabajarcontinuamentetecleandoórdenesalestilodeantañoesservirsedeprogramasenPHPoPerlyaexistentesydescargablesenlared.ElmáspopularsindudaesphpMyAdmin.Estetipodescriptssonejecutadosdesdeunnavegadorypuedenserportantoalbergadosennuestroservidoroempleadosenlocalpara,apartirdeellos,administrarMySQLdeunaformamenossufrida.

Asimismo,dentrodeldirectoriobindeMySQL,podemosencontrarunapequeñaaplicaciónllamadaMySqlManager.Setratadeunainterfacewindows,másagradablealavistayalusoquelaqueobtenemosejecutandoelarchivomysql.Enestecaso,lassentenciasSQLdeben

Page 7: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 7 de 117

realizarsesinelpuntoycomafinal.

EsteartículoesobradeRubénAlvarezFuepublicadoporprimeravezen01/01/2001Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 8: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 8 de 117

AccederaMySQLdesdeterminalenLinux

AccesoyoperacionesmásbásicasparaadministrarMySQLenunsistemaLinuxcuandoaccedemosporelterminalenlíneadecomandos.

EnDesarrolloWeb.compublicamoshacealgúntiempounasnotasmuyinteresantesparatodoaquelquetrabajaconMySQLydeseaaccederporlíneadecomandosalsistemagestordebasededatos.EseartículoestabaorientadohacialaspersonasquetrabajanconWindows,aunqueesverdadquelamayoríadesentenciasdeadministraciónfuncionanigualenLinux,porqueendefinitivaloqueseestáhaciendoescomunicarconMySQLatravésdellenguajeSQL,quenodifiereennadadeunsistemaaotro.

Sinembargo,paralaspersonasquetrabajanconMySQLporGNU/Linux,yaseaporquetenganinstaladoLinuxcomoordenadordeescritoriooporqueaccedanporSSHaservidoresdedicados,algunosasuntosrelacionadosconelaccesoalainterfazdeMySQLcambianunpoco.Enesteartículovamosacomentaralgunosaspectosquepodráninteresaraesosusuariosnovelesqueestándeseandounasorientacionesbásicas.

ComenzaremosdandoalgunosdetallessobrecómoaccederalalíneadecomandosdelsistemaLinux,yaseaentusistemalocal,yaseaenunsistemaLinuxremotoquepuedastenerenunservidordedicado.

AccesoaunservidorporSSH

ComoprimerpasovamosacomentarcómohacerunaconexiónporSSHaunservidordedicado,ounservidorvirtualohosting,quepermitalaconexiónporSSH.EstonotienequeverespecíficamenteconlaadministracióndeMySQL,peropuedeservirdeguíaparalaspersonasqueestándeseandoconectarseconunservidorremotoparaluegoaccederadichosistemagestordebasededatos.

EnestecasopuedequetengasvariossistemasoperativosdistintosyquedeseesaccederalservidorLinuxporcualquieradeellos.

Windows:

ParaaccederporSSHaunservidorremotodesdetuordenadordeescritorioconWindowsyosueloutilizarelprogramaPutty,queessuperligeroygratuito.PuedesverinformaciónsobreestesoftwareenelartículoPutty:ProgramaparaTelnetySSH

Linux:

Page 9: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 9 de 117

ElprogramaPuttytambiénestádisponibleparaLinux,peroestotalmenteinnecesario,yaqueatravésdelterminaldelpropiosistemaLinuxtienesaccesoalcomandoSSHparaconectarteconcualquierservidor.

ssh [email protected]

Porsupuesto,tendrásqueeditartuusuarioylaIPdelservidoralquetequieresconectar.Porejemplo,paraconectarseporrootenelservidorconIP280.230.2.67escribirías:

ssh [email protected]

Mac:

LosordenadoresconsistemaMacOSXtienenelterminaldelíneadecomandostambiénintegradaentrelasaplicacionesdisponibles.ParaaccederporSSHaotroservidorseutilizaelmismocomandoqueenLinux.

AccesoaunabasededatosMySQLenlocalensistemasLinux

SientucasotienesLinuxinstaladoentuordenadordeescritorioydeseasaccederaMySQLporlíneadecomandos,conqueabrasunTerminalessuficiente.Esdecir,queaquínonecesitaríasconectarporSSHconningúnservidor.

Nota:EnmisistemaUbuntuabrounterminalconlacombinacióndeteclasCTRL+ALT+T.SupongoqueenotrasdistribucionesdeLinuxesteatajopuedecambiar,peronodebesermuydifícilabrirunterminal.Buscaelprogramaentrelosinstalados.

AccesoalainterfazdeMySQLdelíneadecomandos

UnavezenelservidordondetengaselMySQLalquequieresacceder,simplementeteconectasconelcomando:

mysql -h localhost -u root -p

TendrásqueindicarelusuarioMySQLconelquequierasautenticarte.ProbablementesearootentuinstalacióndeMySQLenlocal,perosiestásenunservidorenproducciónquizásseamásinteligenteconectarconelusuarioycontraseñadeaccesoalabasededatosMySQLquequieresadministrar,quesonlosmismosqueutilizasen,porejemplo,lafunciónmysql_connect()dePHP.

Nota:ElservidorMySQLalquenosconectamoseslocalhost,puessesuponequeestás

Page 10: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 10 de 117

accediendoalsistemagestorquetienesenelservidorconelquetehasconectado.PerotambiénpodríasaccederaotrosservidoresremotoscambiandolocalhostporelnombreolaIPdeeseservidoralquequierasacceder.

EnLinuxdaigualeneldirectoriodondeestéscuandoejecutesesecomandoparaconectarconMySQL,pueselcomandoestáinstaladoenelservidoryactivodesdecualquierlocalización.

Unavezejecutadoesecomando,senossolicitarálaclavedelusuarioquehemosutilizadoparaconectar.Silaponemosbien,estaremosdentrodelainterfazdeMySQLporlíneadecomandos.

SialgunavezqueremossalirdenuevoalterminaldeLinux,utilizamoselcomando

exit

ComandostípicosdeMySQL

UnavezdentrodeMySQLpuedesrealizarcomandosparatrabajarconelsistemagestordebasededatosenellenguajeSQL.Lomástípicoesquerealicesaccionescomoestas:

Verlasbasesdedatosquetenemoscreadasenelsistema:

show databases;

Nota:observaqueloscomandosquelanzasaMySQLdebenllevarunpuntoycoma";"alfinal,sinolocolocaselcomandonoseejecutaráhastaqueescribasel";"ypulseslateclaEnterdenuevo.

Cambiaraunabasededatos:

use base_de_datos;

Siendobase_de_datoselnombredelabasededatosausar.

Apartirdeaquípuedesrealizarcualquiertipodeconsultasdeselección,actualización,inserción,etc.sobrelabasededatos.ParaelloutilizasellenguajedeconsultaestándardelcualtenemosuninteresanteTutorialdeSQL.

ParacomplementarestainformaciónpuedesleerelanteriorartículosobreLíneadecomandosMySQL,dondeexplicamosotraseriedeaccionesdisponiblescuandoatacamosaMySQLdesdeelterminal.

Page 11: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 11 de 117

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen09/05/2012Disponibleonlineenhttp://desarrolloweb.com/articulos/mysql-terminal-linux.html

Page 12: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 12 de 117

TiposdeDatosdeMysql

ListadoydescripcióndelosdistintostiposdedatosdeMySQL.

Despuésdelafasedediseñodeunabasededatos,yunavezseharealizadoelpasoatablasdelmismo,ennecesariocrearlastablascorrespondientesdentrodelabasededatos.Paracadacampodecadaunadelastablas,esnecesariodeterminareltipodedatosquecontiene,paradeesaformaajustareldiseñodelabasededatos,yconseguirunalmacenamientoóptimoconlamenorutilizacióndeespacio.ElpresenteartículodescribecadaunodelostiposdedatosquepuedeteneruncampoenMysql,paralaversión4.xx.xx.

Lostiposdedatosquepuedehaberenuncampo,sepuedenagruparentresgrandesgrupos:

1. Tiposnuméricos2. TiposdeFecha3. TiposdeCadena

1Tiposnuméricos:

Existentiposdedatosnuméricos,quesepuedendividirendosgrandesgrupos,losqueestánencomaflotante(condecimales)ylosqueno.

TinyInt:

Esunnúmeroenteroconosinsigno.Consignoelrangodevaloresválidosvadesde-128a127.Sinsigno,elrangodevaloresesde0a255

BitóBool:

Unnúmeroenteroquepuedeser0ó1

SmallInt:

Númeroenteroconosinsigno.Consignoelrangodevaloresvadesde-32768a32767.Sinsigno,elrangodevaloresesde0a65535.

MediumInt:

Númeroenteroconosinsigno.Consignoelrangodevaloresvadesde-8.388.608a8.388.607.Sinsignoelrangovadesde0a16777215.

Integer,Int:

Page 13: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 13 de 117

Númeroenteroconosinsigno.Consignoelrangodevaloresvadesde-2147483648a2147483647.Sinsignoelrangovadesde0a429.4967.295

BigInt:

Númeroenteroconosinsigno.Consignoelrangodevaloresvadesde-9.223.372.036.854.775.808a9.223.372.036.854.775.807.Sinsignoelrangovadesde0a18.446.744.073.709.551.615.

Float:

Númeropequeñoencomaflotantedeprecisiónsimple.Losvaloresválidosvandesde-3.402823466E+38a-1.175494351E-38,0ydesde1.175494351E-38a3.402823466E+38.

xReal,Double:

Númeroencomaflotantedeprecisióndoble.Losvalorespermitidosvandesde-1.7976931348623157E+308a-2.2250738585072014E-308,0ydesde2.2250738585072014E-308a1.7976931348623157E+308

Decimal,Dec,Numeric:

Númeroencomaflotantedesempaquetado.Elnúmerosealmacenacomounacadena

|

TipodeCampo

|

TamañodeAlmacenamiento

||

TINYINT

|

1byte

||

SMALLINT

|

2bytes

||

Page 14: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 14 de 117

MEDIUMINT

|

3bytes

||

INT

|

4bytes

||

INTEGER

|

4bytes

||

BIGINT

|

8bytes

||

FLOAT(X)

|

4ú8bytes

||

FLOAT

|

4bytes

||

DOUBLE

|

Page 15: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 15 de 117

8bytes

||

DOUBLEPRECISION

|

8bytes

||

REAL

|

8bytes

||

DECIMAL(M,D

|

M+2bytessíD>0,M+1bytessíD=0

||

NUMERIC(M,D)

|

M+2bytesifD>0,M+1bytesifD=0

|

2Tiposfecha:

Alahoradealmacenarfechas,hayquetenerencuentaqueMysqlnocompruebadeunamaneraestrictasiunafechaesválidaono.Simplementecompruebaqueelmesestacomprendidoentre0y12yqueeldíaestacomprendidoentre0y31.

Date:

Tipofecha,almacenaunafecha.Elrangodevaloresvadesdeel1deenerodel1001al31dediciembrede9999.Elformatodealmacenamientoesdeaño-mes-dia

DateTime:

Combinacióndefechayhora.Elrangodevaloresvadesdeel1deenerodel1001alas0horas,

Page 16: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 16 de 117

0minutosy0segundosal31dediciembredel9999alas23horas,59minutosy59segundos.Elformatodealmacenamientoesdeaño-mes-diahoras:minutos:segundos

TimeStamp:

Combinacióndefechayhora.Elrangovadesdeel1deenerode1970alaño2037.Elformatodealmacenamientodependedeltamañodelcampo:

|

Tamaño

|

Formato

||

14

|

AñoMesDiaHoraMinutoSegundoaaaammddhhmmss

||

12

|

AñoMesDiaHoraMinutoSegundoaammddhhmmss

||

8

|

ñoMesDiaaaaammdd

||

6

|

AñoMesDiaaammdd

||

4

Page 17: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 17 de 117

|

AñoMesaamm

||

2

|

Añoaa

|

Time:

Almacenaunahora.Elrangodehorasvadesde-838horas,59minutosy59segundosa838,59minutosy59segundos.Elformatodealmacenamientoesde'HH:MM:SS'

Year:

Almacenaunaño.Elrangodevalorespermitidosvadesdeelaño1901alaño2155.Elcampopuedetenertamañodosotamaño4dependiendodesiqueremosalmacenarelañocondosocuatrodígitos.

|

TipodeCampo

|

TamañodeAlmacenamiento

||

DATE

|

3bytes

||

DATETIME

|

8bytes

||

Page 18: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 18 de 117

TIMESTAMP

|

4bytes

||

TIME

|

3bytes

||

YEAR

|

1byte

|

3Tiposdecadena:

Char(n):

Almacenaunacadenadelongitudfija.Lacadenapodrácontenerdesde0a255caracteres.

VarChar(n):

Almacenaunacadenadelongitudvariable.Lacadenapodrácontenerdesde0a255caracteres.

Dentrodelostiposdecadenasepuedendistinguirotrosdossubtipos,lostipoTestylostipoBLOB(BinarylargeObject)

Ladiferenciaentreuntipoyotroeseltratamientoquerecibenalahoraderealizarordenamientosycomparaciones.MientrasqueeltipotestseordenasintenerencuentalasMayúsculasylasminúsculas,eltipoBLOBseordenateniéndolasencuenta.

LostiposBLOBseutilizanparaalmacenardatosbinarioscomopuedenserficheros.

TinyTextyTinyBlob:

Columnaconunalongitudmáximade255caracteres.

BlobyText:

Untextoconunmáximode65535caracteres.

Page 19: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 19 de 117

MediumBlobyMediumText:

Untextoconunmáximode16.777.215caracteres.

LongBlobyLongText:

Untextoconunmáximodecaracteres4.294.967.295.Hayquetenerencuentaquedebidoalosprotocolosdecomunicaciónlospaquetespuedentenerunmáximode16Mb.

Enum:

Campoquepuedetenerunúnicovalordeunalistaqueseespecifica.EltipoEnumaceptahasta65535valoresdistintos

Set:

Uncampoquepuedecontenerninguno,unoóvariosvaloresdeunalista.Lalistapuedetenerunmáximode64valores.

|

Tipodecampo

|

TamañodeAlmacenamiento

||

CHAR(n)

|

nbytes

||

VARCHAR(n)

|

n+1bytes

||

TINYBLOB,TINYTEXT

|

Longitud+1bytes

Page 20: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 20 de 117

||

BLOB,TEXT

|

Longitud+2bytes

||

MEDIUMBLOB,MEDIUMTEXT

|

Longitud+3bytes

||

LONGBLOB,LONGTEXT

|

Longitud+4bytes

||

ENUM('value1','value2',...)

|

1ódosbytesdependiendodelnúmerodevalores

||

SET('value1','value2',...)

|

1,2,3,4ó8bytes,dependiendodelnúmerodevalores

|

DiferenciadealmacenamientoentrelostiposCharyVarChar

|

Valor

|

CHAR(4)

Page 21: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 21 de 117

|

Almacenamiento

|

VARCHAR(4)

|

Almacenamiento

||

''

|

''

|

4bytes

|

"

|

1byte

||

'ab'

|

'ab'

|

4bytes

|

'ab'

|

3bytes

Page 22: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 22 de 117

||

'abcd'

|

'abcd'

|

4bytes

|

'abcd'

|||

'abcdefgh'

|

'abcd'

|

4bytes

|

'abcd'

|5bytes|

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen05/02/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 23: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 23 de 117

MysqlControlCenter

UnaconsoladeAdministracióndeMysqlcreadaporMysqlABdesdelaquesepuedenadministrarlasbasesdedatos,losusuariosyelservidordebasesdedatos

MyCCesunapotenteconsoladeAdministracíonparaMysql,quepermiterealizartodaslastareasdeadministraciónytrabajodeMysqlmedianteuninterfacegráfico,yquevieneacubrirunadelasmayoresobjecionesquelosusuariosteníandeMysql.

ParaUtilizarlo,primerolotendrásquedescargardeMysql.com.ExistenactualmenteversionesdisponiblesparaLinuxyparaWindows.

ParapodertrabajarconunservidordeMysql,primerolotendrásquedardealtamedianteeliconodeResgitrarservidor.

Apareceuncuadrodediálogoenelcúalsepuedenconfigurartodoslosparámetrosdeacessoal

Page 24: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 24 de 117

servidor,comosonnombredelservidor,nombredeusuario,contraseña,puertoetc.

UnavezconectadoaunservidorsepodráaccederalastareasdeadministracióndelosusuariosdeMysql,administradordelgestor,yadministracióndelastablas.

AdministradordeUsuarios

Desdeelsepuedenañadir,borrarymodifcarlaspropiedadesdelosusariosdeMysql.Alhacerclicksobreunusuarioaparecelaventanadeconfiguracióndelusuario.

Enellasepuedenconfigurarelnombredeusuario,lacontraseña.Respectoalospermisos,permiteestablecerunsistemadepermisosgeneraloindividualizadoparacadaunadelastablas.Ademáspermitedarlepermisoalusuarioparaqueselocedaaotros(GRANTOPTIONS).

Unodelospuntosfuertesrespectoalaseguridadesquealdefinirunusuario,hayqueespecificarelservidordesdealcualaccederá,limitandodeestaforma,losriesgosdeaccesoindebido.

Administracióndelservidor

LaventanadeAdministracióndelservidorconstadetrespestañasdesdelacualsepuedenaccederalalistadeprocesos,lasvariablesdeestadodelservidorylasvariablesdeconfiguración.

Page 25: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 25 de 117

DesdeestaventanaademássepuedehacerunPingalservidor,detenerlo,oguardarelcontenidodelasvariablesdeestado.

Desdelapestañadeprocesossepuedeverelestadodecadaunodelosprocesosactivos,viendosuspropiedadesyconlaopcióndedetenerlosmedianteunKill.

Desdelapestañadeestado,sepuedeverelcontenidodecadaunadelasvariablesdeestado,ysepuedepersonalizarparamostrarsimplementelasqueteinteresn.

DesdelapestañadevariablessepuedeaccederalvalordecadaunadelasvariablesdeconfiguracióndelservidordeMysql.

VentanadeBasedeDatos

Alseleccionarunabasededatosdentrodelaseccióndebasesdedatos,aparecelaventanadebasededatos,enellasepuedeverinformaciónrelacionadaconlabasededatos,comopuedesernúmerodetablas,elnúmerodeconsultasporsegundo,eltiempoquellevaen

Page 26: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 26 de 117

funcionamientoetc.

Alseleccionarunabasededatos,sepuedenverlosnombresdelastablasquecontiene,elnúmeroderegistrosquecontiene.Lastablassepuedeneliminar,vaciaryrenombrar.

Cuandoseseleccionaunatabla,sepuedenverelnombredeloscampos,lostiposdedatosylosparámetrosopcionalesdecadaunodeellos.

Estaventanapermitecrearnuevoscampos,eliminarlosomodificarsuspropiedades.Ademásmedianteeliconodeherramientas,sepuedeanalizarlatabla,optimizarlayrepararla.

Alhacerdobleclicsobreunatablasemuestranenlaventanalosdatosquecontiene.

Haciendoclicsobrecualquieradeloscampos,seaccedealaestructuradelamisma.Paracadacamposepuedeelegireltipodedatos,eltamaño,siesclaveono,elvalorpredeterminadodelmismo.

Page 27: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 27 de 117

Dentrodelatabla,existeuncuadroparaconfigurarlosíndicesquetiene.

Desdeellasepuedenseleccionarloscamposquelocontienen,asícomoeltipodeíndicequesedeseacrear.

Desdelapestañadepropiedadesdelatablaseaccedenalosatributosdelamisma,comopuedensereltipodetabla,elmododeescritura,eltamañomáximodecadafilaetc.

EnfincomopuedesverestaeslaconsoladeaccesoalservidordeMysqlquellevabamostiempoesperando.Elproductosedistribuyecomosoftwarelibre,asíquetantoladescargacomolautilizaciónilimitadaesgratuita.DisponedeversionesLinuxyWindowsysepuedeencontrarmuchamásinformación,asícomolaúltimaversiónenladirecciónwww.mysql.com/products/mysqlcc/.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen20/09/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 28: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 28 de 117

MySQLAdministrator

Unprogramamuyútilparaadministrar,visualmenteydemanerasencilla,servidoresdebasesdedatosMySQL.

MySQLAdministradoreselnuevosoftwaredeadministracióndeservidoresdeBasesdeDatosdeMySQLquehacreadoMySQLAB.Setratadeunsoftwaremultiplataforma,queporelmomentoseencuentradisponibleparaLinuxyMicrosoftWindowsyquecuentaconunentornográficodeusuariomuyintuitivo.

EstenuevoproductosuplelascarenciasquetieneMySQLControlCentereneláreadeAdministracióndeservidores.MySQLControlCenterenestosmomentosestádeprecado,haquedadoobsoletoynosiguedesarrollándose.SehasustituidoporelconjuntodeprogramasMySQLAdministratoryMySQLQueryBrowser.

MySQLAdministradoresunaherramientaquepermiterealizartareasadministrativassobreservidoresdeMySQLincluyendo:

laconfiguracióndelasopcionesdeiniciodelosservidoresinicioydetencióndeservidoresmonitorizacióndeconexionesalservidoradministracióndeusuariosmonitorizacióndelestadodelservidor,incluyendoestadísticasdeusovisualizacióndeloslogsdeservidorgestióndecopiasdeseguridadyrecuperacionesvisualizacióndecatálogosdedatos

Instalaciónyconfiguración:

LadescargadelprogramasehacedesdelapáginawebdeMySQL,enhttp://dev.mysql.com/downloads/administrator,TambiénenlapáginadeMySQLexistenunaseriedeFAQsqueayudanenlainstalaciónencasodedudas,aunquelamismaesbastantesimple,enhttp://www.mysql.com/products/administrator/.

Page 29: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 29 de 117

UnavezinstaladoesnecesarioconfigurarunaprimeraconexióncontraunservidordeMySQLparapoderaccederalaadministracióndelmismo.

Enlapantalladeconfiguraciónsedeberánespecificarlosdatosdelservidor,nombredeusuario,contraseñaypuerto,delabasededatosalacualsedeseaconectar.

Unavezintroducidosdeformacorrecta,aparecelapantallaprincipaldelprograma:

Desdelapantallaprincipalsepuedeverlainformaciónrelativaalservidordebasedatosalquesehaconectado,asícomolascaracterísticasdelamáquinaenlaqueseestáejecutandoelprograma.

EnlabarrademenúatravésdeTools,setieneaccesoaunaconsoladesistema(Windowso

Page 30: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 30 de 117

Linuxdependiendodelcaso),unclientedeconexiónaMySQLbajolíneadecomandosyaMySQLQueryBrowser.Desdeestemismomenú,seaccedealasopcionesdeconfiguracióndeladministradorydelasconexionesquehayconfiguradas:

Enlaseccióndeconexionesseencuentranalmacenadastodaslasconexionesaservidoresquehayconfiguradas.

Algunasutilidadesaccesiblesdesdelaventanaprincipaldelprogramason:

Servicecontrol:Inicioydetencióndeservidores(sóloaccesiblesisehaconectadoconunservidorMySQLenlamáquinalocal).Startupvariables:Configuracióndelservidorylasvariablesdeinicio(sóloaccesiblesisehaconectadoconunservidorMySQLenlamáquinalocal).UserAdministration:Paralagestióndeusuariosypermisos.Serverconections:Visualizaygestionalasconexionesabiertasconelservidordebasesdedatos.Health:Informaciónsobrelacargadelservidor.ServerLogs:Elhistorialdelogsdelservidor.ReplicationStatus:Coninformacióndelossistemasreplicados.Backup:Parahacerunacopiadeseguridaddelasbasesdedatos.Restore:Pararestaurarlascopiasdeseguridad.Catalogs:Paramostrarlasbasesdedatos,visualizar,crearyeditarlastablas.

Nota:EnelTallerdeMySQLtenemosotrosartículosparaexplicartareasbásicasdeadministracióndeMySQL.TenemosunartículoquepuedeserinteresanteparaleerahoraqueexplicacómorealizarlaadministracióndeusuariosconMySQLAdministrator.

Conclusión

Page 31: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 31 de 117

AlabasededatosMySQLlefaltabaunaherramientacomoMySQLAdministrator.NocabedudaquesetratadeunprogramaextremadamenteútileimprescindibleparaadministrarvisualmenteservidoresMySQL.

Muchasdelasopcionesdeconfiguracióndelabasededatossonmuysencillasdeentenderydeutilizar,porlomenostodaslasopcionesmásbásicas.EnconjuntoconMySQLQueryBrowse,nospermitegestionarcualquieraspectodeunabasededatosMySQL.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen26/01/2005Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 32: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 32 de 117

phpMyAdmin

UnproyectodecódigoabiertoenPHPparaadministrarlabasededatosMySQLatravésdeunainterfazweb.Descripciónfuncionalidadesyayudasparalainstalación.

phpMyAdminesunprogramadelibredistribuciónenPHP,creadoporunacomunidadsinánimodelucro,quesólotrabajaenelproyectoporamoralarte.EsunaherramientamuycompletaquepermiteaccederatodaslasfuncionestípicasdelabasededatosMySQLatravésdeunainterfazwebmuyintuitiva.

LaaplicaciónensinoesmásqueunconjuntodearchivosescritosenPHPquepodemoscopiarenundirectoriodenuestroservidorweb,demodoque,cuandoaccedemosaesosarchivos,nosmuestranunaspáginasdondepodemosencontrarlasbasesdedatosalasquetenemosaccesoennuestroservidordebasesdedatosytodassustablas.Laherramientanospermitecreartablas,insertardatosenlastablasexistentes,navegarporlosregistrosdelastablas,editarlosyborrarlos,borrartablasyunlargoetcétera,inclusoejecutarsentenciasSQLyhacerunbackupdelabasededatos.

PáginadephpMyAdmin

Lapáginadeiniciodelproyectoeshttp://www.phpmyadmin.net/.Desdeallípodemos

Page 33: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 33 de 117

descargarlosficherosdelaúltimaversióndelaaplicación,queposteriormentedebemoscolocarennuestroservidorweb.TambiénpodemosencontraraphpMyAdmindentrodelaredSourceforge.net,queesunsitioquerecogemultituddeproyectos"OpenSource"(códigoabierto).

Hayvariasversionesdisponibles,peroesrecomendableescogerlaquenosaconsejencomolaúltimaversiónestable(Thelaststableversión).Enelmomentodeescribiresteartículoerala2.2.6.Demodoque,sinuestrosistemaesWindows,descargaremoselarchivophpMyAdmin-2.2.6-php.zip

Losarchivosquehemosdescargadosondelaversión4dePHP,aunquetambiénofrecenlaposibilidaddebajarselosarchivosqueguardancompatibilidadconlaversión3dePHP,paraqueaquellosquenodispongandelmotordePHPmásactual.

Lapaginadeiniciodelprogramatambiénnosofrecelaposibilidaddeverundemoonline,aunquenosavisandequeelservidordondesealojapuedeestarcaído.http://www.phpmyadmin.net/phpMyAdmin/

InstalandophpMyAdmin

Unavezdescargadalaúltimaversiónlatenemosquedescomprimir,conloqueobtendremoslosficherosPHPqueconformanlaherramientaycolocarlosdentrodeldirectoriodepublicacióndenuestroservidorweb.

Nota:RecordamosquephpMyAdminesunproyectoescritoenPHP,porloque

Page 34: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 34 de 117

necesitaremoscolocarlosarchivosenunservidorwebquepermitaprogramacióndepáginasPHP.

Además,deberemosaccederalaherramientaatravésdeladireccióndelservidorweb,seguidadeldirectorioenelquetenemoslosarchivosquehemosdescomprimido.Porejemplo,sinuestroservidoreselPWSyhemoscolocadolosarchivosdentrodeldirectoriodepublicación(GeneralmenteC:\Inetpub\wwwroot),enelsubdirectoriophpMyAdmin,debemosescribiralgocomohttp://localhost/phpMyAdmin

SituviéramosinstaladounservidorApacheloscolocaríamosenlacarpetaquehayamosindicadocomo"documentRoot",quesueleserhtdocs.

Loprimeroquepodemosleereselarchivodeladocumentación,queencontramosjuntoconlosarchivosdephpMyAdmin.Explicadatosgeneralesdelprograma,comosusrequerimientos,instruccionesdeinstalación,configuración,preguntasfrecuentes,etc.

Posteriormente,talcomoexplicaladocumentación,hayqueeditarelarchivoconfig.inc.phpparacambiarlosvaloresdehostdelabasededatos(ordenadorquetieneinstaladoelMySQL)yelusuarioypasswordconelquenosconectamos.Sepuedenconfigurarmuchosaspectosenlaherramienta,aunqueahorasolocomentarélosqueheencontradoesencialesparahacerlafuncionar,enladocumentacióntenemosunapartadodedicadoporcompletoaespecificarelsentidodecadavariable.

$cfgPmaAbsoluteUri

DebemosasignarloalarutacompletanecesariaparaaccederaphpMyAdmin.Podríaseralgocomohttp://localhost/phpMyAdminohttp://www.midominio.com/phpMyAdmin

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

Elnombredelhostdelabasededatos.Porejemplolocalhost,siesqueeselmismoordenadordondeestamosinstalandosphpMyAdminylabasededatos.TambiénpodríaserladirecciónIPdelordenadoralquenosconectamos.

$cfgServers[$i]['user']string

$cfgServers[$i]['password']string

Elparusuario/contraseñaquedebeutilizarphpMyAdminparaconectarseconelservidorMySQL.

ConestassencillasconfiguracionesyapodemosaccederaphpMyAdminytrabajarconnuestrabasededatosagolpederatón,queresultamuydeagradecerteniendoencuentaque,encasodenotenerestaherramientauotraparecida,laotraopciónconsistiríaenutilizarellenguajeSQL,y,encasodequelabasededatosestéalojadaremotamenteenInternet,nopodríamoshacerlosinoesconaccesoporTELNETalservidordelabasededatos.

Nota:EnDesarrolloWebpuedesconocermáscosasdePHPyMySQL.

Page 35: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 35 de 117

EnlaseccióndePHP,podrasaprendermuchodePHP,algosobreMySQLeinclusosobreellenguajeSQL.EneldirectoriodedicadoaMySQLhayalgunasreferenciasaartículosyenlacesexternos.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen19/07/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 36: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 36 de 117

InstalareldriverODBCparaconectarconunabasededatosMySQL

InstruccionesparainstalareldriverODBCnecesarioparaconectarconunabasededatosMySQLdesdeunsistemaMicrosoftWindows.

InstalarestedriversirveparaquedesdeunsistemaMicrosoftWindowssepuedaaccederaunabasededatosMySQL.Lasaplicacionessonvariadas,porejemplopodemosutilizarloparacrearunDSNasociadoaunabasededatosMySQL,demodoquenuestraspáginasASPpodríanaccederadichabasededatos.OtraaplicaciónesaccederdesdeAccessalabasededatosMySQLyexportaroimportardatos(migrarlosdatosdesdeAccessaMySQLydesdeMySQLaAccess),inclusoparacrearunback-enddenuestrabaseMySQLeninterfazAccess.

PrimerohayquedescargarlaúltimaversióndeMyodbcdelapáginadeMysql:http://www.mysql.com/products/connector/odbc/

Nota:Puedequenuestrosistematengaqueactualizarse.EnelordenadorquetieneelsistemaWindowsXXyAccess2000habríaqueactualizaralaversión6deMicrosoftJet:

http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q239114&

Cuandoyatenemostodo,instalamoslaactualizacióndeMicrosoftJet,ydescomprimimoseinstalamoseldriverOBDCdeMysql.Cuandopreguntaenlapantallade“DataSources”hazclicen“Close”paraterminar.

UnavezsehainstaladoeldriverODBC,accedealpaneldecontroldeOBDCde32Bits(BotónInicio->Configuración->Paneldecontrol->FuentesdedatosODBC32bits).

Enestepunto,tendrásqueelegirsiquieresutilizareldriverparaunsolousuario(DSNdeusuario),oparacualquierusuariodelordenador(DSNdeSistema).Unavezhayaselegidouno,hazclicenelbotónde“Agregar”paraañadirunanuevafuentededatosyacontinuación,seleccionaeldriverdeMysql.Aparecerálasiguientepantalla:

Page 37: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 37 de 117

Enellatendrásquerellenarlossiguientescampos:

WindowsDSNname:

NombredelafuentededatosqueestarádisponibledesdeWindows.

Mysqlhost(nameorIP):

###

NombreodirecciónIPdelordenadordondeseencuentrainstaladoelservidorMysql.

MysqlDatabaseName:

Nombredelabasededatosconlaquesetrabajarádesdelafuentededatos

Page 38: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 38 de 117

User:

Nombredeusuarioconelqueseaccederáalservidordebasesdedatos.

Password:

Contraseñadelusuario.

Port:

SirveparaespecificarelpuertoenelqueseencuentraelservidorMysql,hayqueponerunvalorencasodequenoseestéutilizandoelpredeterminado,queesel3306.

Unavezestánestasopcionesconfiguradas,sepuedehacerclicen"OK"paracerrarlasventanas.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen20/09/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 39: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 39 de 117

ExportardatosdeMySQLaMicrosoftAccess2000

OsexplicamoscómorecuperarinformaciónalmacenadaenunservidordedatosMySQLhaciaunabaseAccess2000.

Migrardatosdeunabasededatosaotraesalgoaloquemuchosdenosotroshemostenidoqueconfrontarnosenalgúnmomento.AcontinuaciónosexplicamoscómorecuperarinformaciónalmacenadaenunservidordedatosMysqlhaciaunabaseAccess2000.

Nota:PararealizarestatareaesnecesarioquehayamosdescargadoeldriverODBCylohayamosinstaladoennuestrosistemaWindows.EstalaborsepuedeconocerenunartículodeDesarrolloWeb.com:InstalareldriverODBCparaMySQL.

ParaimportarunatabladeMysqlaMicrosoftAccess,desdeAccess,yconlabasededatosenlaquesequierenimportarlosdatosabierta,seleccionarelmenuArchivo->ObtenerdatosExternos->Importar.EnlapantalladeImportardatos,enlaopcionTipodearchivoseleccionarODBCdatabases().

Page 40: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 40 de 117

Seleccionarorigendedatosdeequipo,ydentrodeesta,elnombredelafuentededatosquehemoscreadoanteriormente.Unavezlahasseleccionado,yhashechoclicsobre"Aceptar",aparecerálapantalladeconfiguracióndeldriverporsideseasmarcarparaestaacciónenconcreto,algunasdelasopcionesdeconfiguraciónqueapareceneneldriverODBC,sinodeseasmarcarninguna,clicsobre"OK".

Nota:PudieraserenalgúncasoquelostiposdelosdatosdelabaseenlossistemasMySQLyAccessnoseantotalmentecompatiblesyseproduzcaalgunaanomaliaalexportarlos.Realmenteesunaposibilidadquepensamos,aunqueenlaspruebasquehemosrealizadonohemosvistoningúntipodeproblema,bienesciertoqueloscamposquehemostrabajadonoeranmuyraros.

ApareceráunaventanadondepreguntaquétabladeMysqlsedeseaexportaraAccess:

Page 41: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 41 de 117

Seleccionalatabla,yhazclicsobre"Aceptar"

Nota:SiestamosexportandolosdatoshaciaodesdeunservidordebasesdedatosalojadoenalgúnproveedordeHosting,tenemosquetenerencuentaqueestosnosiempreincluyenensupaquetebásicoelaccesoremotoalservidordebasededatos,orequieredeunavisoexplicitoporpartedelclienteparasuconfiguración.

Referencia:Sideseamosrealizarunamigracióndedatosenelotrosentido,esdecir,desdeAccesshaciaMySQL,serámuyindicadoleerotroartículoenDesarrolloWebqueexplicaelprocesodetalladamente.ExportardatosdeAccess2000aMySQL.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen24/08/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 42: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 42 de 117

ExportardatosdeAccess2000aMySQL

ExplicamosunamaneraprácticademigrardatosdeunabasededatosAccessaunservidordedatosMySQL.

NoesdeextrañarquehayamoscomenzadoahacernuestrospinitosenlawebsirviéndonosdeunabasededatossencillacomoAccess.Tampocoesdeextrañarque,llegadoelmomento,pasemosacosasmásseriasynospasemosaunservidordedatoscomoMySQL.Aquíosmostramosunamanerabastanteprácticademigrarlosdatosdelaunaalaotra.

Nota:PararealizarestatareaesnecesarioquehayamosdescargadoeldriverODBCylohayamosinstaladoennuestrosistemaWindows.EstalaborsepuedeconocerenunartículodeDesarrolloWeb.com:InstalareldriverODBCparaMySQL.

ParaexportarunatablaaMysql,hayqueabrirlabasededatosyseleccionarlatabla.Después,hacerclicsobreArchivo->Exportar.Enlapantalladeexportar,enlaopciónGuardarcomotipo,seleccionarODBCdatabases().

Unavezsehahechoesto,apareceunaventanaquenospreguntaelnombrequelequeremosdaralatablaenMysql,pordefectoapareceelmismo.

Hazclicsobre"Aceptar",yaparecerálapantallaenlaquesepidequeseleccioneselorigendedatosODBC:

Nota:PudieraserenalgúncasoquelostiposdelosdatosdelabaseenlossistemasMySQLyAccessnoseantotalmentecompatiblesyseproduzcaalgunaanomaliaalexportarlos.Realmenteesunaposibilidadquepensamos,aunqueenlaspruebasquehemosrealizadonohemosvistoningúntipodeproblema,bienesciertoqueloscamposquehemostrabajadonoeranmuyraros.

Page 43: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 43 de 117

Seleccionarorigendedatosdeequipo,ydentrodeestaelnombredelafuentededatosquehemoscreadoanteriormente.Unavezlahasseleccionadoyhashechoclicsobre"Aceptar",aparecerálapantalladeconfiguracióndeldriverporsideseasmarcarparaestaacciónenconcretoalgunasdelasopcionesdeconfiguraciónqueapareceneneldriverODBC.Sinodeseasmarcarninguna,hazclicsobre"OK"ylosdatoscomenzaránaexportarse.

Nota:SiestamosexportandolosdatoshaciaodesdeunservidordebasesdedatosalojadoenalgúnproveedordeHosting,tenemosquetenerencuentaqueestosnosiempreincluyenensupaquetebásicoelaccesoremotoalservidordebasededatos,orequieredeunavisoexplicitoporpartedelclienteparasuconfiguración.

Referencia:Sideseamosrealizarunamigracióndedatosenelotrosentido,esdecir,desdeMySQLhaciaAccess,serámuyindicadoleerotroartículoenDesarrolloWebqueexplicaelprocesodetalladamente.ExportardatosdeMySQLaMicrosoftAccess2000.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen28/08/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 44: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 44 de 117

AdministraryactualizarunabasededatosMySQLdesdeAccess

Sinuestraspáginasutilizanunabasededatosdebemoscontarconunaherramientadeadministraciónyactualizacióndelabasededatos,oprogramarlanosotros.IlustramoscomoAccesspuedeayudarnosahacerlofácil.

UnodelosmayoresproblemasdelosqueadoleceactualmenteMysqleselnoposeerunentornográficoquesatisfagaalamayorpartedelosusuarios.ExistenmagníficosproyectosatravésdepáginaWeb,comoPHPmysqlAdmin,peromuchasvecesteencuentrascongentequelegustaríateneralgoparecidoaunAccess,posibilidaddeincluirformulariosparalaentradadedatos,odeinformessobrelosdatosalmacenadosdentrodeunatabla.

DadoquenoexistehoyendíaningunaherramientaparecidaalAccessparatrabajarconMysql,elpresenteartículoexpondrálaformadetrabajarconlasbasesdedatosdeMysqlutilizandoelentornográficodeAccess.Alterminarlo,podrásutilizarlosformularios,consultaseinformesdeAccessconlosdatosdelosficherosdeMysql.

Deestaforma,elencargadodeactualizarlosdatosdeunapágina,podrátrabajardesdeAccess,conlacomodidaddelosformularios,losmenúsdesplegablesetc.,ylosdatosseránenviadosautomáticamenteaMysql.

| ImagendelaconsoladeMySQL

Page 45: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 45 de 117

|| FormulariodeAccessqueaccedeaunabasededatosMySQL

|

Nota:Dosimágenesquesediferencianunmundo.ConlasdossepuedeadministrarunabasededatosMySQL,unacorrespondealaconsolaMySQL(laherramientamásbásica)ylaotraaunformularioconAccess,quesindudaofreceunainterfazmuchomásagradable.

Además,paralageneracióndeformularioseinformessepuedenutilizarlosasistentes...todounahorrodetiempo!!

Referencia:PararealizarestatareaesnecesarioquehayamosdescargadoeldriverODBCylohayamosinstaladoennuestrosistemaWindows.EstalaborsepuedeconocerenunartículodeDesarrolloWeb.com:InstalareldriverODBCparaMySQL.

UnaveztenemoseldriverMyODBCinstalado,loprimeroquehayquehacerescrearunabasededatosenblancodesdelacualsevincularánlastablas.Unavezcreada,sehaceclicsobrelaopcióndecrearnuevatabla.Aparecerálasiguienteventanaenlaqueseseleccionarácrearnuevatablavinculada:

Page 46: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 46 de 117

Aparecelaventanadevincularunatabladeunabasededatos,enlaparteinferiorseseleccionaentipodearchivo:fuentededatosODBC()

AlhacerclicsobreVincular,aparecelaventanaparaseleccionarunOrigendedatos,seseleccionadentrodelapestañadefuentesdedatosdelEquipo,lafuentededatosquecreamosenlaprimerapartedelartículo:

Page 47: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 47 de 117

Unavezseselecciona,sehaceclicsobreAceptar,yaparecelaventanadeconfiguracióndelafuentededatosODBCdeMysql.Comoyaestaconfigurada,hacemosclicsobreOK,yaparecerálaventanaenlaquesepuedenelegirentrelastablasquecontienelabasededatosparalacualhemosconfiguradolafuentededatosODBC.

Seseleccionaunatabla,yacontinuaciónapareceráunaventanadondedeberemosespecificar,hastaunmáximodediez,loscamposqueformanpartedelaclave.

Page 48: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 48 de 117

Seseleccionanloscampos,ysehaceclicsobreaceptar.

ApareceráunanuevatabladentrodelabasededatosdeAccess.Adiferenciadelrestodetablas,estanoexistefísicamentedentrodelficherodeAccess,sinoquetodaslasmodificacionesqueserealizansobrelamisma,seenvíanatravésdeODBCalficheroMYSQL.

Apartirdeahora,sepodráncrearformularios,consultaseinformessobreestatablatalycomosehacenormalmentedesdeAccess.

Nota:AlgunosproveedoresdeHostingnoincluyenensupaquetebásicoelaccesoremotoalservidordebasededatos,orequieredeunavisoexplicitoporpartedelclienteparasuconfiguración.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen20/10/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 49: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 49 de 117

Connector/J

EldriverConnector/JpermitetrabajardesdeJavaconbasesdedatosMySQL.

MysqlConnectoresundrivercreadoporMysqlABquetepermitirátrabajarconMysqldesdeprogramasescritosenJava.Adiferenciadeotrosdrivers,esteesdelibredistribución,ytieneunbuenrendimiento.

MySQLConnector/JesundrivernativodeJavaqueconviertelasllamadasgeneradasporJDBCenelprotocoloderedqueutilizalabasededatosdeMysql.PermitealdesarrolladortrabajarconellenguajedeprogramaciónJavaydeestaformaconstruirprogramasqueinteractuanconMysql.

ElMySQLConnector/JesundriverJDBCtipoIVycontienetodaslascaracteristicasdeJDBCparamanejarMysql.

Eneldesarrollodelasúltimasversionessehaincrementadobastantelavelocidaddeldriver,ganandoenrapidezasicomoeneficiencia.Eldriversoportaresultadosdedatos"streaming"loquepermitealusuariorecogerungrannúmerodefilassinlanecesidaddeutilizarunbufferdememoria.EldriverimplementaunprotocolodepaquetesgrandequepermiteenviarfilasycamposBLOBsdehasta2GigaBytes.EnlaversióndedesarrollodelmismoseimplementanlasnuevascaracterísticasañadidasenelAPI3.0deJDBC.

Eldriverhasidoprobadoparatrabajarconlassiguientesherramientasdebasesdedatosyservidordeaplicaciones:

ApacheJbossBEAWeblogicIBMVisualAgeforJavaIBMWebSphereApplicationServer4.0ForteforJavaOracleSQL/JTableGen

Descarga

ParainstalareldriverhayquedescargarlodelapáginadeMysqlConnector/J

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen20/09/2002Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 50: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 50 de 117

Page 51: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 51 de 117

CopiasdeseguridadenMySQL

Conceptosatenerencuentaalahoradehacerunacopiadeseguridadymétodosdisponiblesparaello.

ElgestordeBasesdedatosMySQLincluyevariasherramientasparalarealizacióndecopiasdeseguridaddelabasededatos.Medianteellaspodremosponerasalvonuestrosdatos,paraque,eneleventualcasodequesepierdan,poderlosrecuperar.

Alahoradehacerunacopiadeseguridad,loprimeroquesehayquetenerencuentaeslaintegridaddelosdatosqueseesténguardando.Entodosloscasosesnecesarioquehayaintegridadenlosdatosdeunatabla,conestoquierodecirquetodoslosdatosdelatabladeberánestarescritosenlamisma,estopuedesonarunpocoraro,perotalycomopasacontodoslosgestoresdebasesdedatos,Mysqldisponedediversas"caches"enlasquesealmacenandatostemporalmenteconelobjetivodemejorarenrendimiento,deformaqueporejemplo,unavezhechaunamodificaciónenunatabla,puedeserquelosdatosnoseguardeninmediatamenteendisco,hastaquetermine,porejemplo,unaconsultaqueseestabaejecutando.Poresto,esnecesario"forzar"aMysqlaescribirtodoslosdatoseneldisco,mediantelasentencia"FlushTables".

Ademásesnecesarioquenoseescribaenlastablasmientrasseestahaciendolacopiadeseguridaddelabasededatos,queseconsigueconelcomando"locktables",seguidodelnombredelatabla.Puedehaberbasesdedatosenlasqueseanecesariobloqueartodaslastablasalmismotiempoantesdehacerlacopiadeseguridad.

ExistenvariasopcionespararealizarlacopiadeseguridaddeunabasededatosdeMysql,

Enprimerlugar,sepodríautilizaralgunaherramientacomercialquegestionetodoelproceso,estotienecomoventajalasimplicidaddelmétodo,ycomoinconveniente,quenosuelensergratis,sinoquehayquepagarlicenciaporlautilizacióndelosmismos.Estasherramientasnosecubriránenestereportaje.Ensegundolugar,yapartirdelaversión3.23.25yposteriores,existelaposibilidadderealizarunacopiadeseguridadatravésdelasentenciasql"backuptable".Comoterceraopción,esposiblerealizarcopiasdeseguridadatravésdelasherramientasquenosproporcionaelpropiogestordebasededatos,comopuedensermysqldumpómysqlhotcopy.

Nota:Llegadoaestepuntonecesitarásaccederalossiguientesartículos,enlosquesedetallaelprocesodecreacióndelascopiasdeseguridadMySQLpordosmétodos:

BackupMySQLmedianteSentenciasSqlBackupMySQLconmysqldump

Page 52: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 52 de 117

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen06/06/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 53: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 53 de 117

BackupMySQLmedianteSentenciasSql

CómorealizarunbackupdelastablasdeunabasededatosysurecuperaciónapartirdesentenciasSQL.

VeremoscómorealizarunacopiadeseguridaddelatablaysurecuperaciónapartirdesentenciasSQL.

Backupdelosdatos

Estecomandonospermitehacerunacopiadelosficherosdelastablasdelascualesqueremoshacerunbackup,actualmentesolofuncionacontablasdetipoMyIsam,ycopiatantolosficheros.frmquecontienenladefinicióndelatabla,comolosficheros.myd,quecontienenlosdatos.

Antesdeejecutarse,guardatodosloscambiosquepudierahaberenmemoriadelatabla,deformaquequededeunamaneraconsistente.Asimismo,durantelaejecucióndelcomando,bloquealatablasobrelaqueseestáhaciendolacopiadeseguridadparaquelosdatosseanconsistentesenlatabla.Hayquetenerencuentaqueestecomandovabloqueandounaaunalastablas,segúnvahaciendolacopiadeseguridad.Estopodríaprovocarinconsistenciadedatosaniveldebasededatos,siesnecesariohacerunbackupdetodaslastablasenuninstante,encuyocasohabríaqueutilizarelcomando"locktables"parabloqueartodaslastablasantesdecomenzarlacopiadeseguridad.

Alfinalizarelcomandodevuelveunatabla,quecontieneloscampos:

|Columna|Valores||Table|Nombredelatabla||Op|Siemprepone"backup"||Msg_type|Puedecontenerstatus,error,infoowarning.||Msg_text|Mensajedescriptivodelresultadodelaoperación|

Yenlaquehayunregistroporcadatablaquesobrelaquesehahechobackup.

Pararealizarunacopiadeunatablallamadapedidos,alacarpetaBackups:

BACKUP TABLE pedidos TO `/backups/`

Recuperacióndedatos

Paracomplementarlasentencia"Backuptable",Mysqldisponedelasentencia"Restoretable",quepermiterestaurarunatablaapartirdeunacopiadeseguridadqueseharealizadoconelcomando"BackupTable".

Page 54: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 54 de 117

Estaopciónsolosepuedeutilizarsilatablaquesepretenderestaurarnoseencuentraenlabasededatos,yaqueencasoafirmativomostraráunmensajedeerror.AligualqueelcomandodeBackup,estaopciónsóloestadisponibleparalastablasdetipoMyIsam,yapartirdelaversión3.23.25.

Comoelcomandodebackup,nocopialosficherosdeíndices,elcomandopararecuperarlosdatos,vuelveareindexartodosloscamposquecontieneníndices,creandolosficheroscorrespondientes.Aligualqueelcomandoparahacercopiasdeseguridad,invocaralcomando"Restoretable"devuelveunatabla,conunregistroporcadatablasobrelaquesehahecholabasededatos,yquecontienelasiguienteinformación:

|Columna|Valores||Table|Nombredelatabla||Op|Siemprepone"restore"||Msg_type|Puedecontenerstatus,error,infoowarning.||Msg_text|Mensajedescriptivodelresultadodelaoperación|

PararestaurarunatablallamadapedidosdelacarpetaBackupsalabasededatos:

RESTORE TABLE pedidos FROM `/backups/`

Nota:ParacontinuaraprendiendométodospararealizarunbackupdeunabasededatosMySQLtenemoselartículoBackupMySQLconmysqldump,queenseñaamanejarelcomandomysqldumpparahacerunacopiadeseguridaddelabasededatosentera.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen06/06/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 55: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 55 de 117

BackupMySQLconmysqldump

ElcomandomysqldumpdelsistemagestordebasededatosMySQLsirveparahacercopiasdeseguridad.Loexplicamoscondetenimientoyvemossusopcionesmásimportantes.

EnesteartículovamosaconocerunaherramientaesencialdeMySQL,pararealizarcopiasdebasesdedatos,obackups,enellenguajeSQL.Setratademysqldump,uncomandoquefuncionaenelterminal,compatibleconcualquiersistemaoperativodondecorraMySQL.Comenzaremosanalizandolasopcionesdisponiblesyalfinaldaremosunaseriedeejemplosdeusoqueresultaránútilesparasituacionesvariadas.

Estecomandopermitehacerlacopiadeseguridaddeunaomúltiplesbasesdedatos.Ademáspermitequeestascopiasdeseguridadsepuedanrestaurarendistintostiposdegestoresdebasesdedatos,sinlanecesidaddequesetratedeungestordeMySQL.Estoloconsiguecreandounosficheros,quecontienentodaslassentenciasSQLnecesariasparapoderrestaurarlatabla,queincluyendesdelasentenciadecreacióndelatabla,hastaunasentenciainsertporcadaunodelosregistrosqueformanpartedelamisma.

Parapoderrestaurarlacopiadeseguridad,bastaráconejecutartodaslassentenciasSQLqueseencuentrandentrodelfichero,biendesdelalíneadecomandosdemysql,odesdelapantalladecreacióndesentenciassqldecualquierentornográficocomopuedeserelMysqlControlCenter.

Laslimitacionesdelarestauracióndependerándelasopcionesquesehanespecificadoalahoradehacerlacopiadeseguridad,porejemplo,siseincluyelaopción--add-drop-tablealhacerlacopiadeseguridad,sepodránrestaurantablasqueexistenactualmenteenelservidor(borrándolasprimero).Porloqueesnecesarioestudiarprimerolosprocedimientosqueseutilizarántantoenlacopiacomoenlarestauración,paraquetodosalgacorrecto!

Opcionesdisponiblesenelcomando

Elcomandodisponedeunaampliavariedaddeopcionesquenospermitirárealizarlacopiadelaformamásconvenienteparaelpropósitodelamisma.Algunasdelasopciónesmásimportantesson:

--add-locks

AñadeLOCKTABLESantes,yUNLOCKTABLEdespuesdelacopiadecadatabla.

--add-drop-table

Page 56: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 56 de 117

Añadeundroptableantesdecadasentenciacreate

-A,--all-databases

Copiatodaslasbasesdedatos.Eslomismoqueutilizar--databasesseleccionandotodas.

-a,--all

IncluyetodaslasopcionesdecreaciónespecíficasdeMysql.

--allow-keywords

Permitelacreacióndenombesdecolumnasquesonpalabrasclave,estoserealizaponiendodeprefijoacadanombredecolumna,elnombredelatabla

-c,--complete-insert

Utilizainsertsincluyendolosnombresdecolumnaencadasentencia(incrementabastanteeltamañodelfichero)

-C,--compress

Comprimelainformaciónentreelclienteyelservidor,siambossoportancompresión.

-B,--databases

Paracopiarvariasbasesdedatos.Enestecaso,noseespecificantablas.Elnombredelosargumentosserefierealosnombresdelasbasesdedatos.SeincluiráUSEdb_nameenlasalidaantesdecadabasededatos.

--delayed

InsertalasfilasconelcomandoINSERTDELAYED.

-e,--extended-insert

UtilizalasintaxisdeINSERTmultilinea.(Proporcionasentenciasdeinsertmáscompactasyrápidas.)

-#,--debug[=option_string]

Utilizacióndelatrazadelprograma(paradepuración).

--help

Muestramensajedeayudaytermina.

--fields-terminated-by=...

Page 57: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 57 de 117

--fields-enclosed-by=...--fields-optionally-enclosed-by=...--fields-escaped-by=...--lines-terminated-by=...

Estasopcionesseutilizanconlaopción-TytienenelmismosignificadoquelacorrespondientecláusulaLOADDATAINFILE.

-F,--flush-logs

Escribeendiscotodosloslogsantesdecomenzarconlacopia.

-f,--force,

ContinúaaunqueseproduzcaunerrordeSQLdurantelacopia.

-h,--host=..

CopialosdatosdelservidordeMysqlespecificado.Elservidorpordefectoeslocalhost.

-l,--lock-tables.

Bloqueatodaslastablasantesdecomenzarconlacopia.LastablassebloqueanconREADLOCALparapermitirinsertsconcurrentesencasodelastablasMyISAM.

Cuandoserealizalacopiademúltiplesbasesdedatos,--lock-tablesbloquealacopiadecadabasededatosporseparado.Deformaqueestaopciónnogarantizaquelastablesseránconsistenteslógicamenteentredistintasbasesdedatos.Lastablasendiferentesbasesdedatossecopiaránenestadoscompletamentedistintos.

-K,--disable-keys

Seincluiráenlasalida/!40000ALTERTABLEtb_nameDISABLEKEYS/;y/!40000ALTERTABLEtb_nameENABLEKEYS/;EstoharáquelacargadedatosenunservidorMySQL4.0serealicemásrápidodebidoaquelosíndicessecrearándespuésdequetodoslosdatoshayansidorestaurados.

-n,--no-create-db

NoseincluiráenlasalidaCREATEDATABASE/!32312IFNOTEXISTS/db_name;Estalíneaseincluyesilaopción--databaseso--all-databasesfueseleccionada.

-t,--no-create-info

Noincluirálainformacióndecreacióndelatabla(sentenciaCREATETABLE).

-d,--no-data

Noincluiráningunainformaciónsobrelosregistrosdelatabla.Estaopciónsirveparacrearunacopiadesólolaestructuradelabasededatos.

Page 58: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 58 de 117

--opt

Lomismoque--quick--add-drop-table--add-locks--extended-insert--lock-tables.Estaopciónledeberíapermitirrealizarlacopiadeseguridaddelabasededatosdelaformamásrápidayefectiva.

-pyour_pass,--password[=your_pass]

Contraseñautilizadacuandoseconectaconelservidor.Sinoseespecifica,`=your_pass',mysqldumppreguntarálacontraseña.

-P,--port=...

PuertoutilizadoparalasconexionesTCP/IP

--protocol=(TCP|SOCKET|PIPE|MEMORY)

Especificaelprotocolodeconexiónqueseutilizará.

-q,--quick

Noalmacenaenelbufferlasentencia,lacopiadirectamentealasalida.Utilizamysql_use_result()pararealizarlo.

-Q,--quote-names

Entrecomillalastablasynombresdecolumnaconloscaracteres``'.

-r,--result-file=...

Redireccionalasalidaalficheroespecificado.EstaopciónsedeberíautilizarenMSDOS,porqueprevienelaconversióndenuevalínea\n' en nueva línea y retorno de carro\n\r'.

--single-transaction

UtilizaelcomandoBEGINantesderealizarlacopiadesdeelservidor.EsmuyútilconlastablesInnoDByelniveldetransacciónREAD_COMMITTED,porqueenestemodorealizarálacopiadeseguridadenunestadoconsistentesinnecesidaddebloquearlasaplicaciones.Consultarelmanualparamásdetalles.

-S/path/to/socket,--socket=/path/to/socket

Elficherodesocketsqueseespecificaalconectarallocalhost(queeselhostpredeterminado).

--tables

sobreescribelaopción--databases(-B).

Page 59: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 59 de 117

-T,--tab=path-to-some-directory

Creaunficherotable_name.sql,quecontienelasentenciadecreacióndeSQL,yunficherotable_name.txt,quecontienelosdatosdecadatabla.Elformatodelfichero`.txt'serealizadeacuerdoconlasopciones--fields-xxxy--lines--xxxoptions.Nota:Estaopciónsólofuncionasielcomandomysqldumpseejecutaenlamismamáquinaqueeldemoniomysqld,elusuariodeberátenerpermisosparacrearyescribirelficheroenlaubicaciónespecificada

-unombre_usuario,--user=nombre_usuario

Elnombredeusuarioqueseutilizarácuandoseconecteconelservidor,elvalorpredeterminadoeseldelusuarioactual.

-v,--verbose

Vamostrandoinformaciónsobrelasaccionesquesevanrealizando(máslento)

-w,--where='cláusulawhere'

Sirvepararealizarlacopiadedeterminadosregistros

-X,--xml

Realizalacopiadeseguridadenundocumentoxml

-x,--first-slave

Bloqueatodaslastablasdetodaslasbasesdedatos

Ejemplosdecomandosmysqldump:

Pararealizarlacopiaseseguridaddelabasededatosmibasealficherocopia_seguridad.sql

mysqldump --opt mibase > copia_seguridad.sql

Otroejemplomáscomplejodecomandomysqldumpparahacerelbackupdeunabasededatoseselsiguiente:

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

Enesteúltimocasoestamosindicandounnombredeusuarioyunaclaveparaaccederalabasededatossobrelaqueseestáhaciendoelbackup:mibasededatos.LassentenciasSQLparareconstruiresabasededatossevolcaránenelficheroarchivo.sql.

mysqldump --opt --password=clave --user=usuario Base_de_datos tabla1 tabla2 > backupdostablas.sql

Page 60: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 60 de 117

Estecomandoesprácticamenteigualqueelanterior,peroenestecasonosrealizalacopiadeseguridaddeúnicamentedostablas"tabla1"y"tabla2",queestánenlabasededatos"Base_de_datos".

Restaurarlabasededatos

Sideseamosrecuperarlainformacióndeunficheropararestaurarunacopiadeseguridaddelabasededatosloharemosconelcomandomysql.Utilizaremosunasintaxiscomoesta:

mysql mibase < archivo.sql

Enesteejemploserestauraríalabasedededatosmibaseconelbackupalmacenadoenelficheroarchivo.sql.

Otroejemplomáscomplejodecomandopararestaurarunabasededatoseselsiguiente:

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

Eselmismoejemploqueelanterior,peroindicandounnombredeusuarioyunaclaveconlasqueaccederalabasededatosmibase.

EsteartículoesobradeCarlosLuisCuencaFuepublicadoporprimeravezen20/06/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/backup-mysql-mysqldump.html

Page 61: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 61 de 117

SubirunabasededatosalsevidordeInternet

ElsegundopasoparasubirunaaplicaciónPHPalservidorconsisteencolocarlabasededatosenel

Apartedelosarchivosdelapágina,debemossubirlabasededatosconlaquetenemosquetrabajar.LasbasesdedatosconlasquetrabajaPHPsonmuyvariadasyendistintoscasospodemosutilizarunauotra,porloquelosmodosdesubirlabasededatostambiénpuedenvariar.

Nota:Esteartículoylossucesivos,quetratansobresubirunabasededatosMySQLalservidor,seenglobantantodentrodelManualdePHPcomodelTallerdeMySQL.Porello,seráimportantedisponerdeconocimientosdeambastecnologíasparaentenderyaprovecharestasexplicaciones.

EsmuycorrientequenuestroproveedordehostingofrezcajuntoconPHPlabasededatosMySQL,asíquelasnotasparasubiresabasededatosalservidordeesteartículovanencaminadasaofrecersolucionesparaesabasededatos.

LabasededatosMySQLnosepuedesubirporFTP,comoquesehacíaconlosarchivosdelcódigoPHP.Parasubirlatendremosqueutilizarotrosmecanismos.Voyadistinguirentretrescasosdistintosenlosquenospodríamosencontrarenestemomento:

1. Labasededatosquepretendemossubirestávacía.Tansólohemoscreadolastablas,peronohemosintroducidodatosenellaso,alosumo,tienenalgúndatoquehemosintroducidodepruebas.

2. LabasededatosquequeremossubirestácompletayesunabasededatosMySQL.Enestecasotenemoscreadalabasededatosenlocalycontodalainformacióndentroy,porsupuesto,queremosqueesainformaciónquedetambiénenlabasededatosremota.

3. Labasededatosestácompleta(comoelcasoanterior),peronoesunabasededatosMySQL.Enestecasoestaríamoshaciendounamigracióndelabasededatosdeunsistemagestoraotro.

Veremoslostrescasosporseparadoenadelante,aunque,antesdeello,vamosamostrarunasherramientasquenosservirándemuchaayudaparalaadministracióndecualquierbasededatosremota.

Page 62: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 62 de 117

LasherramientasenconcretoserelatanenelmanualTallerdeMySQL,sonlassiguientes:

PhpMyAdmin.UnaaplicacióncreadaenPHPquepodemosinstalarennuestroespaciodealojamientoparaadministrarlabasededatos.MysqlControlCenter(enadelanteMyCC).UnaaplicaciónWindowsquepermitecontectarseamúltiplesbasesdedatosMySQL,queseencuentrenenlocaloenremoto.Access.TambiénpermiteadministrarunabasededatosMySQLconectadaenlocaloenremoto.Enestecasoseutilizaunainterfazquemuchosyaconocen,comoesAccess,paraadministrarunabasededatosquenadatienequevercondichoprograma.

Enlostrescasosloquenospermiterealizarelsoftwaredeadministraciónsontareassobrelabasededatosdetodotipo,comopuedensercreartablas,modificarlas,insertardatos,borrarlos,editarlos.Modificaroborrartablasocamposdelasmismas,etc.

Laeleccióndeunaherramietaodeotrapasaporlosrecursosquenospermitanutilizarennuestroproveedor.Básicamente,loquenospuededecantaraunaopciónuotra,essipermitenonoconectardemaneraremotalabasededatosMySQL.Conozcoalojamientosdondesepermiteesaconexiónremotaydondeno.

SinopermitenconectarnosremotamentenosdecantaremosporPhpMyAdmin,puesesunaaplicaciónPHPqueseconectaenlocalyalaqueseaccededesdeunapáginawebyesolopermitentodoslosproveedores,inclusohaymuchosquetieneninstaladoyaestesoftwareparaadministrarlasbasesdedatos.

Encasodequesínospermitanconectarnosremotamenteconlabasededatos,eligiremosMyCCoAccess,quesonaplicacionesWindowsmuchomáspotentesyrápidasquelasqueutilizaninterfazweb,comoPhpMyAdmin.EspreferibleutilizarMyCCporqueestáespecialmentedesarrolladoparaconectaryoperarconbasesdedatosMySQL.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen26/06/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 63: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 63 de 117

SubirbasededatosMySQLvacíaalservidor

Labasededatosquepretendemossubirestávacía.Tansólohemoscreadolastablas,peronohemosintroducidodatosenellaso,alosumo,tienenalgúndatoquehemosintroducidodepruebas.

Esmuynormalquehayamosdiseñadounabasededatosparanuestroproyectodesde0,definiendolasdistintasentidadesdenuestromodelodedatos,juntoconsuscamposysustipos.

Enestoscasoslomásprobableesquelabasededatosestévacía,obiencontengadatosquehayamosintroducidoamododepruebayquenoqueramosconservarcuandosubamoslaaplicaciónaInternet.

Laopciónmásinteresanteentoncespodríasercrearotravezlastablasquetenemosenlocalenlabasededatosremota.Paraellotenemosdosposibilidades:

Sitenemospocastablasybastantesencillas:LaspodemoscrearenremotoconalgunaherramientacomoPhpMyAdminoMyCC.

Sitienemuchastablasy/omuycomplicadas:Larecomendaciónseríahacerunbackupdelaestructuraenlocalyrestaurarlaenremoto.Estonosevitarátenerquevolveracreartodaslastablasydefinirtodossuscamposysustipos.Puedeserunpocomáscomplicadoperosindudanosahorrarátiempo.

ParahacerelbackupdelaestructuraenlocalpodemosutilizaralgunaherramientacomoPhpMyAdmin,obienutilizarelcomandomysqldumpdesdelíneadecomandosdeMS-DOS.

Page 64: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 64 de 117

HerramientadebackupdePhpMyAdmin.Estámarcadalaopcióndeextraersolamentelaestructuradelastablas.Simarcamosademáslacasilla"Send",nuestronavegadorsedescargaráelbackupenunficherodetexto.Sinolopulsamossimplementesevisualizará.

Loquetenemosquehacerenestecasoesunbackupdelaestructuradelabasededatos,esdecir,los"createtables"osentenciasSQLparacrearlastablas.Seríaunmontóndesentenciasconestaforma:

# --------------------------------------------------------

#

# 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)

);

PararestaurarestassentenciastenemosopcionestantodentrodePhpMyAdmincomodeMyCC.EnamboscasosloquetenemosquehaceresejecutarestassentenciasenelservidorMySQLremoto.EnPhpMyAdmintenemosuncampoparaintroducirsentenciasSQLytambiénotrocampoparaseleccionarunarchivodetextocontodaslassentenciasSQL,paraejecutarlasunadetrásdeotra.EnMyCCtenemosunbotónquenospermiteabrirunaconsoladondeintroducirunaovariassentenciasSQLyejecutarlas.

HerramientadebackupyrestauracióndePhpMyAdmin

Page 65: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 65 de 117

BotónparaintroducirsentenciasSQLenMyCC

Repetimos,estosólonosserviráparasubirlaestructuradelabasededatosynolosdatosquecontenga.Sideseamossubirtambiénlainformacióndelabasededatosentoncesdebemosutilizarotrasestrategias,relatadaspróximamente.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen26/06/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 66: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 66 de 117

SubirunabasededatosMySQLconlaestructuraylosdatos

ComotransferirunabasededatosMySQLquetenemosenlocalanuestroservidorremoto,incluyendotantolaestructuradelastablascomosusdatos.

Silabasededatosquedeseamossubirestállenadeinformaciónydeseamosqueseconserveunavezsubidalabasededatosaremoto,tenemosquerealizarunbackupdelabasededatosyrestaurarloenremoto.

Nota:EstasrecomendacionesestánpensadasparasubirunabasededatosMySQLquepodamostenerenlocalaunabasededatosMySQLquehayamoscontratadoenremoto.SilabaseorigennoesMySQLestaríamoshablandodeunamigracióndebasesdedatos,peroestoloveremosenunartículomásadelante.

Enestecasoelprocedimientoseríamuyparecidoaldesubirunabasededatosvacía,relatadoanteriormente,conlasalvedaddequeahoradebemosextraernosololaestructuradelabasededatos,sinotambiénlosregistrosquecontiene.

Paraellopodemosutilizarmysqldump,segúnserelataenesteartículo,obienPhpMyAdmin,seleccionandolaopciónqueindicaqueelbackupcontengalaestructuraylosdatos(Structureanddataenversioneseninglés).

LaestructuraylosdatosvendránenunficherodetextoconunaseriedesentenciasSQLparacrearlastablasylosinsertnecesariosparaintroducircadaunodelosdatos.

Pararestaurarlabasededatosloharemostalcomoseharelatadoparaelcasodequelabasededatosestuvieravacía,conlaayudadeunainstalacióndePhpMyAdminenremotoounMyCCqueseconectealabasededatoscontratadaenelservidordeInternet.

Sitenemosproblemasparasubirelficherodebackupdelabasededatosesposiblequeennuestroproveedordealojamientonospuedaayudarasubirelficheroyrestaurarlo.Comoelproveedordisponedelosservidoresensuspropiasinstalaciones,tienemuchasmásposibilidadesquenosotrosparatrabajarconlasbasesdedatos,sintemoraquelaslentascomunicacionesporInternetarrojenerroresenlarestauracióndelosdatos.

Sinuestroproveedornopuedeayudarnos,seguramentedispongaynosindiquealgúnmecanismopararealizarlatareasinlugaraerrores.Puedeocurrinosconalgúnproveedorquenosdigaqueseencargadetodoperonosexijaelpagodelashorasdetrabajodelinformáticoquevaarestaurarelbackupdelabasededatos.Sinoponefacilidadesnisiquieraenesto

Page 67: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 67 de 117

posiblementeseamejorirpidiéndolesquenosdevuelvaneldineroinvertidoporquesuservicionoseríamuybueno.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen23/07/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 68: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 68 de 117

MigrarunabasededatosaMySQL

IndicacionesútilesparamigrarunabasededatosaMySQL,esdecir,cuandotenemosquesubirunabasededatoslocalencualquiergestoraunabasededatosremotaenMySQL.

Elúltimocasoenelquenospodemosencontraralahoradesubirunabasededatosanuestroproveedordealojamientoesquelabasededatoslatengamoscreadaenlocal,peroenunsistemagestordistintodelquevamosautilizarenremoto.EnremotosuponemossiemprequevamosautilizarlabasededatosMySQL.EnlocalpodríamosdisponerdeunabasededatosAccess,SQLServerodeotrosistemadebasededatos.

Elprocesodelamigraciónpuedeserbastantecomplejoy,comohaytantasbasesdedatosdistintas,difícildedarunarecetaquefuncioneentodosloscasos.Además,apartedeladificultaddetransferirlainformaciónentrelosdossistemasgestoresdebasededatos,tambiénnosinfluirámuchoenlacomplejidaddelproblemaeltipodelosdatosdelastablasqueestamosutilizando.Porejemplo,lasfechas,loscamposnuméricoscondecimalesolosboleanospuedendarproblemasalpasardeunsistemaaotroporquepuedenalmacenarsedemanerasdistintaso,enelcasodelosnúmeros,conunaprecisióndistinta.

RecomendacionesparamigrardeAccessaMySQL

SinuestrabasededatosanteriorestabaconstruidaenAccesslotenemosbastantefácil,graciasaqueMySQLdisponedeundriverODBCparasistemasWindows,quenospermiteconectarAccessconelpropioMySQLypasarinformaciónfácilmente.

EstetemaestárelatadoenelartículoExportardatosdeMySQLaAccess,aunquehayqueindicarquesideseamoshacerunaexportacióndesdeAccessenlocalaMySQLenremotopuedehaberproblemasporquenotodoslosalojadorespermitenlasconexionesenremotoconlabasededatos.Sinotenemosdisponibleunaconexiónenremotoconnuestroservidordebasesdedatosvamosatenerquecambiarlaestrategiaunpoco.

LaideaenesteúltimocasoesinstalarMySQLenlocalyrealizarlamigracióndesdeAccessenlocalaMySQLenlocalyluegopodríamoshacerunbackupdelabasededatoslocalysubirlaaremoto,talycomoseharelatadoantes.

RecomendacionesparamigrardesdeSQLServeraMySQL

Laverdadesquenohetenidoestecasonunca,perohayquedecirqueAccesstambiénnospuedeayudarenestecaso.AccesspermiteseleccionarunabasededatosSQLServerytrabajardesdelapropiainterfazdeAccess.LaideaesqueAccesstambiénpermitetrabajarconMySQLyposiblementehaciendounpuenteentreestosdossistemasgestorespodemosexportardatos

Page 69: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 69 de 117

deSQLServeraMySQL.

LoqueesseguroqueutilizandoelpropioAccessdepuentepodríamosrealizareltrabajo.PrimeroexportandodeSQLServeraAcessyluegodesdeAccessaMySQL.

Otrasbasesdedatosuotrastécnicas

SilabasededatosorigendisponedeundriverODBCnohabrá(enteoría)problemaparaconectarlaconAccess,demanerasimilaracomoseconectaconMySQL.EntoncespodríamosutilizarAccessparaexportarlosdatos,porquedesdeallísepodríanaccederalosdossistemasgestoresdebasesdedatos.

SinotenemosAccess,olabasededatosoriginalnotienedriverODBC,obiennonosfuncionacorrectamenteelprocesoynosabemoscómoarreglarlo,otraposibilidadesexportarlosdatosaficherosdetexto,separadosporcomasoalgoparecido.Muchasbasesdedatostienenherramientasparaexportarlosdatosdelastablasaficherosdetexto,loscualessepuedenluegointroducirennuestrosistemagestordestino(MySQL)conlaayudadealgunaherramientacomoPhpMyAdmin.

Paraello,enlapáginadepropiedadesdelatablaencontraremosunaopciónparahacerelbackupdelatablayparaintroducirficherosdetextodentrodeunatabla(Inserttextfilesintotableeninglés).

Accediendoaeseenlacepodremosverunformulariodondeintroducirlascaracterísticasdelficherodetexto,comoelcarácterutilizadocomoseparadordecampos,oelterminadordelíneas,etc,juntoconelpropioarchivoconlosdatos,yPhpMyAdminseencargarádetodoeltrabajodeincluiresosdatosenlatabla.

Page 70: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 70 de 117

Comosehabrásupuesto,esnecesariotenercreadalatablaenremotoparaquepodamosintroducirlelosdatosdelficherodetexto.

Cambiosdeunformatodedatosaotro

Todalamigracióntienequetenerencuentamuyespecialmente,comoyaseseñaló,lasmanerasquetengacadabasededatosdeguardarlainformación,esdecir,delformatodesustiposdedatos.Tenemosquecontarsiempreconlaposiblenecesidaddetransformaralgunosdatoscomopuedenserloscamposboleanos,fechas,camposmemo(textoconlongitudindeterminada),etc,quepuedenalmacenarsedemanerasdistintasencadaunodelossistemasgestores,origenydestino.

Enalgunoscasosposiblementetengamosquerealizaralgúnscriptquerealiceloscambiosnecesariosenlosdatos.Porejemplopuedeserparalocalizarlosvaloresboleanosguardadoscomotrue/falseavaloresenteros0/1,queescomoseguardaenMySQL.Tambiénlasfechaspuedensufrircambiosdeformato,mientrasqueenAccessaparecenencastellano(dd/mm/aaaa)enMySQLaparecenenelformatoaaaa-mm-dd.PHPpuedeayudarnosenlatareadehacerestescript,tambiénVisualBasicScriptparaAccesspuedehacerestastareascomplejasyelpropiolenguajeSQL,abasedesentenciasdirigidascontralabasededatos,puedeservirparaalgunasaccionessencillas.

EsteartículoesobradeMiguelAngelAlvarez

Page 71: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 71 de 117

Fuepublicadoporprimeravezen23/07/2003Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 72: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 72 de 117

MySQLporlíneadecomandos

AccesoaunservidorMySQLyadministracióndelabasededatosporlíneadecomandos.

EsmuynormalqueutilicemosMySQLatravésdepáginasPHPyparaadministrarlabasededatosutilicemosunprogramacomoPhpMyAdmin,peroavecesnonosquedaotroremedioqueaccederalabasededatosatravésdelalíneadecomandos.

MySQLtieneunprograma,quesellamaconelmismonombredelabasededatos(mysql)quesirveparagestionarlabasedatosporlíneadecomandos.Eseprograma,enunainstalacióndeWindowsseencuentraenundirectoriocomo

C:\Archivosdeprograma\MySQL\MySQLServer4.1\bin

Eldirectoriopuedevariar,porejemplo,puedeestarlocalizadoenlaraízdeldiscoC:,oencualquierotrolugardondepodamoshaberinstaladoMySQL.ParaaccederalaconsoladeMySQLenWindowstendremosqueestarsituadosdentrodeesedirectorio.

EnLinux,porsupuesto,tambiénsepuedeaccederaMySQLporlíneadecomandos.PosiblementedesdecualquierdirectoriopodamosaccederalaconsoladeMySQL,sinnecesidaddesituarseeneldirectoriodondeestéinstalado.

ConectarconelservidorMySQL

LoprimeroquetendremosquehaceresconectarconelsistemagestordeMySQL.Paraello,desdelalíneadecomandosinvocamosaMySQL.Paraello,simplementetenemosqueescribirelcomando"mysql"eindicarleunasopcionesdeconexión.

% mysql

Conel"%"expresamoselprincipiodelalíneadecomandos.EseprincipioeselpromptquetengamosennuestraconsoladeLinuxoMsDOS,quepuedeseralgocomoc:\mysql\bin>.Elcarácter"%",portanto,notenemosqueescribirlo.

Conesasentenciaseconectaunoconlabasededatosconlosparámetrospordefecto.Esdecir,alservidorlocal,conusuarioypasswordigualacadenasvacías.

Lomásnormalesquetengamosqueindicaralgúnotrodatoparaconectarconlabasededatos,comoelusuario,laclaveoladireccióndelservidorconelquequeremosconectar.Lasintaxisseríalasiguiente:

Page 73: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 73 de 117

% mysql -h nombre_servidor -u nombre_usuario -p

Sideseamosconectarnosalabasededatosenlocalyconnombredeusuarioroottendríamosqueescribir:

% mysql -h localhost -u root -p

Loprimeroquenospreguntaráseráelpasswordparaelusuarioroot.Unavezintroducidalaclave,yaestaremosdentrodelalíneadecomandosdeMySQL.Conelloelpromptcambiaráaalgocomoesto:

mysql>

PodríamoshaberindicadolacontraseñadirectamenteenlalíneadecomandosparainiciarlasesiónconMySQL,peroestosedesaconsejaporrazonesdeseguridad.Detodosmodos,lasintaxishubierasido:

% mysql -h localhost -u root -pmi_clave

Nosfijamosqueentre-hyelnombredelhosthayunespacioenblanco,igualqueentre-uyelnombredeusuario.Sinembargo,entre-pylaclavenodebemosponerningúnespacio.

DentrodelaconsoladeMySQL

Unavezdentro,tendremosanuestradisposicióntodaslassentenciasdeMySQLparaeltrabajoconlabasededatosyellenguajeSQL.

Lomásnormalesqueprimerotetengasqueconectarconunabasededatosenconcreto,deentretodaslasquepuedestenercreadasentuservidorMySQL.Esosehaceconelcomandouse,seguidodelnombredelabasededatosquedeseasconectar.

mysql> use mibasedatos;

Estonosconectaríaconlabasededatosllamada"mibasedatos".

Nota:HayquefijarsequetodaslassentenciasdentrodelalíneadecomandosdeMySQLacabanen";".Sinocolocamoselpuntoycoma,lomásseguroesquenoseejecuteelcomandoynosvuelvaasalirelpromptparaquesigamosintroduciendoelcomando.Siloquequeríamoseraejecutarlasentenciaquehabíamosescritoantes,consimplementeentrarel";"serásuficiente.Esdecir,nodebemosescribirdenuevolasentenciaentera,sóloel";"yvolveraapretar"enter".

Page 74: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 74 de 117

Siqueremosverunalistadelasbasesdedatosalojadasennuestroservidorpodemosescribirelcomandoshowdatabases.Así:

mysql>show databases;

Conestonosmostraríaunalistadelasbasesdedatosdenuestroservidor.Algocomoesto:

mysql> show databases

-> ;

5 rows in set (0.02 sec)

Siqueremoscrearunabasedatos,podremoshacerloconelcomando"createdatabase"seguidodelnombredelanuevabasededatos.

mysql> create database miprueba;

Esonoscrearáunabasededatosquesellama"miprueba".Comohabíamoscomentado,siqueremosluegousaresabasededatosescribiríamos:

mysql> use miprueba;

Lógicamente,estabasededatosreciéncreadaestarávacía,perosiestuviéramosusandounabasededatosyacreadayqueremosverlastablasquetieneescribiríamoselcomando"showtables".

mysql> show tables;

Sinohaytablas,nosdiráalgocomo"Emptyset",perositenemosvariastablasdadasdealtaenlabasededatosqueestamosusando,nossaldráunalistadeellas:

Page 75: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 75 de 117

2 rows in set (0.00 sec)

Ahora,sideseamosobtenerinformaciónsobreunatabla,parasaberquécampostieneydequétipo,podremosutilizarelcomandodescribeseguidodelnombredelatabla.

mysql> describe administrador;

4 rows in set (0.11 sec)

OtrasSentenciasSQL

DesdelaconsoladeMySQLpodemosindicarporlíneadecomandostodotipodesentenciasenlenguajeSQL,comoselecciones,inserciones,actualizaciones,creacióndetablas,etc.Elmecanismoeselquesepuedededucir.Simplementecolocamoslasentenciaaejecutarseguidadelpuntoycoma.Veamosunaseriedesentenciasseguidasyelresultadodeejecutarlas:

mysql> create table prueba (id_prueba int);

Query OK, 0 rows affected (0.08 sec)

mysql> insert into prueba (id_prueba) values (1);

Query OK, 1 row affected (0.00 sec)

mysql> insert into prueba (id_prueba) values (2);

Query OK, 1 row affected (0.00 sec)

mysql> insert into prueba (id_prueba) values (3);

Query OK, 1 row affected (0.00 sec)

mysql> select * from prueba;

Page 76: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 76 de 117

3 rows in set (0.00 sec)

Endefinitiva,podemosejecutartodaslassentenciasquesehanaprendidoenelmanualdellenguajeSQL

ParasalirdelalíneadecomandosdeMySQL

UnavezhemosterminadodetrabajarconMySQL,siqueremoscerrarlaconexiónconelservidor,simplementeescribimos"quit"desdeelpromptdeMySQL:

mysql> quit

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen15/03/2006Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 77: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 77 de 117

GestionarusuariosMySQL

TrabajamosconlaherramientaMySQLAdministratorparadardealtaygestionarusuariosdelabasededatos,asignarprivilegios,posibleshostsdeacceso,etc.

LosusuariosdeMySQLsegestionanatravésdelabasededatosllamada"mysql",concretamenteconlatabla"user".Sinembargo,elmanejodeesatablaesrelativamentecomplicadoparaunusuarioquenoseadeltodoexperto,porloqueserámuchomáscómodousarlaaplicaciónMySQLAdministratorpararealizarlagestióndeusuarios.

MySQLAdministratoresunaherramientaqueproveedirectamenteMySQL,quesepuededescargardesdelapropiapáginadeMySQLyqueyaintrodujimosanteriormenteennuestroTallerdeMySQL:IntroducciónaMySQLAdministrator.

EntrelasdistintasopcionesdeMySQLAdministratortenemosunasecciónparalagestióndeusuarios,suspermisos,hostdeacceso,etc.Lapodemosveryseleccionarenlabarradeopcionesdelaizquierda.

Inicialmentesólohayunusuariocreado,enmuchasdelasconfiguracionestípicas,queeselusuarioroot.Lalistadeusuarioscreadosapareceenlapartedeabajodelabarradela

Page 78: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 78 de 117

izquierda.Podemosseleccionarcualquierusuarioparaeditarsuspropiedades.

Laspropiedadesdeusuariossedividenentrespestañas:

Userinformation:

Conlosdatosdelogin(nombredeusuarioycontraseñadeacceso)yotrosdatospersonalesdelusuario,queesopcionalcompletar.

SchemaPrivileges:

Conlospermisosasociadosaeseusuario.Luegoloscomentaremos.

Resources:

Conlosrecursosdisponiblesparaeseusuario.

Enlapartededebajodelaventanaencontraremostresbotones,paracrearunnuevousuario,paraaplicarloscambiosrealizadosenlosformulariosdeedicióndeunusuarioyparadescartarlos.

Siqueremoscrearunusuariopodemospulsarelbotónde"NewUser"yaparecerálaventanadepropiedadesdelusuario,enlapestañadeUserInformation,paraqueintroduzcamoselnombreparaesteusuarioylacontraseñaquevamosaasignar.

Podemosentrarenotraspestañasparaterminardeintroducirlosdatosdelusuario.LapestañadeSchemaPrivilegesesespecialmenteinteresante,yaquenospermiteseleccionarlospermisosdeesteusuarioparacadabasededatosdenuestrosistema.

LaventanadeSchemaPrivilegesnospermiteseleccionarunabasededatosyentoncesaccedemosaunalistacontodoslosprivilegiosposiblesparapermitirodenegar.Inicialmente,paraunusuarionuevo,todoslospermisosestándenegados,asíquetendremosqueseleccionarlosquedeseamosotorgar.Paraellosimplementeseleccionamosentrelos"avaliableprivileges"(permisosdisponibles)ylospasamosa"assignedprivileges"(permisosasignados).

Page 79: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 79 de 117

Nota:EsteartículocontinúaenDefinirloshostdeconexióndelosusuariosaMySQL.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen15/06/2006Disponibleonlineenhttp://desarrolloweb.com/articulos/34.php

Page 80: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 80 de 117

DefinirloshostdeconexióndelosusuariosaMySQL

ConMySQLAdministratorsepuedendefinirdistintosordenadoresohostdesdelosqueunusuariosepuedeconectaraunabasededatosMySQL.

VamosacontinuarlaexplicacióndelagestióndeusuariosenbasesdedatosMySQLqueyacomenzamosenelartículoGestionarusuariosMySQL.

Anteriormentelosusuariosylosdistintoshostsedefiní[email protected]@localhostqueríadecirqueelusuariopepesepuedeconectarsolamentedesdeelpropioordenadordondeestáelservidordelabasededatos.Porejemplo,pepe@%significabaqueelusuariopepesepuedeconectardesdecualquierhost.Lospermisosasignadosapepe@localhostypepe@%puedenserdistintos.

Ahoraelmanejodehostdecadausuariosehacedemaneradistinta.

Inicialmentecualquierusuariocreadosepuedeconectardesdecualquierhostocomputadorposible.Siestasituaciónnonosconviene,podemosdefinirnuevoshostpulsandoconelbotónderechodelratónsobreelusuarioquequeremosañadirordenadoresdeacceso.Entoncesnossaleunformularioparaindicarelnombredelhostquequeremosañadiraeseusuario,osudirecciónIP.

Encualquiermomento,sihacemosdobleclicsobreunusuarioynossaledebajounalistadehosts,esqueeseusuariosepuedeconectardesdecualquierdeesoshostyademás,podremosasignarpermisosdistintosalusuariocuandoseconectedesdecadaordenadorposible.Demodoqueunusuariosiseconecta,porejemplodesdelocalhost,puedetenermáspermisosquesiseconectadesdeotrosordenadoresdelaredlocalodeInternet.

Porejemplo,enlaimagenanteriorseentiendequeelusuariopruebasepuedeconectardesdelocalhost(elordenadorlocal)ydesdeotroequipollamado"otrohost".Perotenercuidadocon

Page 81: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 81 de 117

estalistadehost,porquealomejortodavíaestamospermitiendoqueelusuariopruebasepuedaconectardesdecualquierhostyesposiblequenodeseemosqueesosepermita,sinoquesólosedejeaccedersiseaccededesdeesoshostespecificados.

Paradarnoscuentadeestedetallepodemosverenlaventanadepropiedadesdelusuarioelnombredelusuarioquesale,parasaberloshostqueestánpermitidos.

Lovemosconunaimagen:

Enestaimagennoshemossituadoenelhostlocalhostdelusuarioprueba.Vemosqueenlapartedearriba,enlapartedepropiedadesdelusuarioapareceprueba@localhost.Esoquieredecirqueestádefinidoelusuariopruebasiemprequeseconectedesdelocalhostyqueestamosenlaventanadepropiedadesdeeseusuario.

Ahoraveamoslasiguienteimagen:

Page 82: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 82 de 117

Noshemossituadoencimadelusuarioprueba.Sinosfijamosenlapartedearribadelaspropiedadesdelusuarioveremoscomoaparece"prueba",dondeenlaimagenanterioraparecí[email protected]"prueba",comonoestáindicadoningúnhost,quieredecirqueelusuariopruebapuedeaccedersedesdecualquierhost.

Siqueremosevitarqueelusuariopruebasepuedaaccederdesdecualquierequipo,simplementepulsamosconelbotónderechoenelnombredeusuarioyseleccionamoslaopciónquepone"removehostfromwhichtheusercanconnect".Entonces,sihemospulsadosobreelnombredelusuarionosquitaráelaccesodelusuariodesdecualquierhost.Sihacemoslamismaacciónsobrecualquiernombredehost,comolocalhost,nosquitarálaposibilidaddequeelusuariosepuedaconectardesdeeseordenador.

Apretandoconelbotónderechoencualquierusuarioohostnosdaráunaseriedeopciones,paraelmantenimientodeeseusuarioohostquenohemosnombrado,comoañadirunusuario,borrarlooduplicarlo.

Conclusión

HemosexplicadorápidamentelagestióndeusuariosenMySQLconMySQLAdministrator.Noresultamuycompleja,porloquepodremosdominarlasdistintasopcionesfácilmente.

Siqueremos,siemprepodemosecharunvistazoalatablauserdelabasededatosmysql,queesdondeseguardanlosusuariosdelabasededatosyasípodemosverdequémanerasehanimplementadointernamenteloscambiosquehemoshechoconMySQLAdministrator.

Page 83: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 83 de 117

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen22/06/2006Disponibleonlineenhttp://desarrolloweb.com/articulos/definir-host-conexion-usuarios-mysql.html

Page 84: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 84 de 117

AcortarlaconexiónaMySQLporlíneadecomandos

TrucopararealizarmássencillalainstruccióndeconexiónalabasededatosMySQLporlíneadecomandos.

ComohemospodidoleerenelartículodeMySQLporlíneadecomandos,paraconectarconunservidorMySQLesnecesarioescribirunaseriedeparámetrosenlainstruccióndeconexión.Entreesosparámetrosseencuentraelhostalquedeseamosconectar,elnombredeusuarioylacontraseña.

TodoslosdatosdeconexiónconelservidorMySQLhacenquelainstrucciónparaconectarsehagaunpocolargaypesadadeescribirunayotravez,encadaconexiónconMySQL.EnesteartículoveremosunamanerasencilladerecortarelprocesodeaccesoalservidorMySQL,evitandolanecesidaddeescribirunayotravezlosdatosdeaccesoparaconectar.

LaideasetratasimplementedeescribirunficherodetextodondefiguraránlosdatosdeconexiónconelservidorMySQL.Cuandoconectemos,enlugardeescribiresosdatosenlalíneadecomandos,nosotrosescribiremossimplementelallamadaamysqlyelpropioclienteseencargarádeleeresearchivodetextoparaobtenerlosdatosdelhost,usuarioycontraseña.

Elarchivoquetenemosquecrearsellamamy.cnf.Comodecimos,esunarchivodesólotexto,porloquesepodrácrearyeditarconcualquiereditordetextoplano,comoelblocdenotas.Laestructuradelficheroserálasiguiente:

[client]

host=servidor_con_el_que_conectar

user=nombre_de_usuario

password=clave

Estearchivodetextolotenemosquecolocareneldirectorioraizdelsistema,enWindows,porejemplo,deberíamoscolocarloenC:\my.cnf.EnLinuxtambiéndeberíamoscolocarelficheroeneldirectorioraizdelsistema"/my.cnf".

Obviamente,tenemosquesustituirlosdatosdeconexiónporlosquenecesitemosennuestrosistema.Unposibleejemplodearchivodeconexiónpodríaserelsiguiente:

[client]

host=localhost

user=miusuario

password=loquesea

Page 85: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 85 de 117

Losdistintosparámetrossonopcionales.Porejemplo,sinotenemospassword,podríamosdejarsinponerlalíneadondeseespecificalaclave.

Esoestodo,unavezcreadoelficheroycolocadoenellugaradecuado,podremosaccederaMySQLsimplementeconlainstrucción"mysql",sinnecesidaddeespecificarcadavezelhost,usuario,clave,etc.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen22/09/2006Disponibleonlineenhttp://desarrolloweb.com/articulos/acortar-conexion-mysql-linea-comandos.html

Page 86: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 86 de 117

HabilitandoInnoDBenMySQL

EstemanualvaparalosquesonusuariosdelMysqlqueempiezan,enespecialparalosqueporfacilidadutilizanelAppServencualquierversión.

Empezarepormiproblemacuandoleíaunmanualsobreintegridadreferencial,puesnecesitabautilizarbasesdedatosdeltipoINNOBD,oentodocasodeltipoBDB(BerkeleyDataBase),puesalmomentodecrearlatabladelsiguientemodo:

CREATE TABLE Prueba

(

id int not null auto_increment,

nombre varchar(100),

primary key(id)

) ENGINE = InnoDB;

PuespordefectolastablasenMysqlantesdelaversión5.0.2,estánconfiguradasparaelTipoMyISAM,entoncesparaquepuedanserInnoBDdebemosdeclaradelaformaENGINE=InnoDB,comoenelejemplo,peroelproblemaenespecialenlosqueinstalanlosAppServesquelaconfiguraciónenelmy.iniqueseencuentraenlaCarpetaC:/Windowsseleagregalasiguientelínea:

skip-innodb(*)

LoquehaceestalíneaesquenopermitecreartablasenelformatoInnoDB,loquenonospermitetrabajarconintegridadreferencial,adiferenciadelasversionesposterioresqueagreganenelmy.ini,queseencuentraenC:/ArchivosdeProgramas/Mysql/MysqlServer5.0enespecialenlosinstaladoresindependienteslassiguienteslíneas:

#Thedefaultstorageenginethatwillbeusedwhencreatenewtableswhendefault-storage-engine=INNODB(**)

EstasadiferenciadelasanterioresloquepermiteesquetodaslastablasquesecreanseandelTipoInnoDBpordefecto,claroestaquelastablasdelsistemalasquevienenenelMysql,debenserdelTipoMyISAMyaqueestastrabajanenestetipo,explicadolasinstalacionesvayamosalassoluciones.

Buenolamásfácilseriacambiarlaprimeralínea(*)porlasegunda()**,peroquepasaríasideseamoscreartablasdelTipoMyISAM,puestendríamosquedeclararalcrearlatabladelaformasiguiente:

Page 87: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 87 de 117

CREATE TABLE Prueba

(

id int not null auto_increment,

nombre varchar(100),

primary key(id)

) ENGINE = MyISAM;

EstotalvezlesgenereunproblemaparalosquegeneralmentecreansustablaseneltipoMyISAM,entoncesenelarchivomy.inisedebesolamenteborrarlalíneadeSkip-innoDBocomentarlaparaquenospermitacreartablasdeltipoInnoDB,yelproblemitayaestasolucionado.

AntesdeterminarcomonosaseguramosquetenemossoporteparaeltipoInnoDB,puessimplementeejecutamoslasiguientesentencia:

SHOW VARIABLES LIKE '%innodb%';

Laquemostraraentreotrascosalosiguiente:

+---------------------------------+------------------------+

| Variable_name | Value |

+---------------------------------+------------------------+

| have_innodb | YES |

…..

Estanospermitesabersiestaonohabilitadoestacaracterísticayasípodersolucionarelproblemasiesquelotenemos.

Ahorayaestasolucionado,atrabajarconlastablasInnoBD,asípoderhacerIntegridadreferencial,laquenospermiteusarPrimaryKey,oForeignKey.Buenoparaterminardisculpasporlafaltadeordenypornosertanclaro,esperolessirvadealgoestemanual.

EsteartículoesobradeRussvellOblitasValenzuelaFuepublicadoporprimeravezen02/08/2007Disponibleonlineenhttp://desarrolloweb.com/articulos/habilitando-innobd-en-mysql.html

Page 88: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 88 de 117

¿PorquéMySQLeslentocongrandestablas?

SihasleidoyestudiadosuficienteacercadeMySQLprobablementehabrásescuchadoqueMYSQLnoeslaelecciónacertadaparamanejartablasconmasde1.000.000deregistros.

PorotroladotambienpuedequetengasconocimientoqueMySQLeselmotordecompañiascomoGoogle,Yahoo,Technoratiyestasmanejanalgunosbillonesderegistrosyconsiguenungranrendimiento.

Lapreguntaquepuedesestarhaciendoteescuáleslarazón...

LarazónesquenormalmenteestastablasestandiseñadasyentendidasparatrabajarconMySQL,sidiseñastusdatosconsiderandoquepuedehaceryquenopuedehacerMySQLprobablementeconseguirasunbuenrendimiento,cualquiersistemadeadministracióndebasesdedatosesdiferenteconrespectoalosotros,loquefuncionabienyeseficazenOracle,MSSQL,PostgreSQLnodebedeserloquemayorrendimientoofreceenMYSQL.

Inclusoenelsistemadealmacenamientotienenmuchasdiferenciasqueloshacediferentes.

Lastresclavesquedeberiasdetenerencuentacontablasmuygrandesson:Buffers,indicesyconsultas.

Buffers

Comoyasabrásunbufferesunaubicacióndelamemoriareservadaparaelalmacenamientotemporaldeinformacióndigital.

Laprimeracosaquedeberiasdetenermuyclaraeselhechodequehayunagrandiferenciaentrecuandolosdatosestanenmemoriaycuandonoestanenmemoria.

Siempezasteconuntamañodememoriaynotasundescensogradualdelrendimientoporquelabasededatosestacreciendounabuenasolucionseríaasegurartequetienessuficientememoriaparaelvolumendedatosqueestasutilizandoestopodriasrealizarlocondiferentestécnicas.

Indices

Losíndicessonusadosparaencontrarrápidamentelosregistrosquetenganundeterminadovalorenalgunadesuscolumnas.Sinuníndice,MySQLtienequeiniciarconelprimerregistroyleeratravésdetodalatablaparaencontrarlosregistrosrelevantes.

Page 89: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 89 de 117

Aúnentablaspequeñas,deunos1000registros,esporlomenos100vecesmásrápidoleerlosdatosusandouníndice,quehaciendounalecturasecuencialporlotantoquedaclaroquelosindicessonrealmenteeficacesparaacelerarelaccesoadatos.

Antesdeproseguirconlaexplicacionhedeaclararalgunosterminoscomoescaneocompleto,queesleertodoslosregistrosdelatablademanerasecuencial.

CuandoMySQLencuentrequehayuníndiceenunacolumna,lousaráenvezdehacerunescaneocompletodelatabla.EstoreducedemaneraimporantelostiemposdeCPUylasoperacionesdeentrada/salidaendisco.

Dejameexplicartelocondatos,considerandounatablaquetiene100Bytesporregistros,conunaunidadSCSInosotrospodriamosobtener100MB/segundodevelocidaddelecturaquenosdaríaalrededorde1.000.000deregistroporsegundo,sihablamosdetablastipoMyISAM.

Aquítedejounejemplo,hecreadounatablacon30millonesderegistros,conunacolumna('val')quetiene10000valoresdiferentes,vamosaverlasdiferenciasentreeltiempodeunescaneototaldelatablayunescaneoutilizandounrangodevaloresporejemploentre1y100,elresultadoeselsiguiente:

1.

mysql> SELECT count(pad) FROM large;

2.

+------------+

3.

| count(pad) |

4.

+------------+

5.

| 31457280 |

6.

+------------+

7.

1 row IN SET (4 min 58.63 sec)

8.

9.

mysql> SELECT count(pad) FROM large WHERE val BETWEEN 1 AND 100;

10.

+------------+

11.

| count(pad) |

12.

+------------+

13.

| 314008 |

14.

+------------+

15.

1 row IN SET (29 min 53.01 sec)

Page 90: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 90 de 117

Comopuedesobservarelresultadoescontradictoriohatardado5minutosencontar30millonesderegistrosperoloquesorprendeesquehatardado30minutosencontarel1%deesosregistrosqueeranlosvaloresentre1y100.

Haymuchasmanerasdeoptimizareltrabajoconestetipodeconsultas,porejemploordenarprimeroellosvaloresyentonceshacerlabúsquedasobreestosregistrosyaordenados.Estasoluciónreduciriaeltiempodeejecucióndelaconsultaperosindudaseriaunresultadorelativamenteparecido.Elusodeíndicesseantojaesencialenestetipodeejemplosenlosquetenemosgrandescantidadesdedatosennuestrastablas,lamejoraenlaobtencióndelosdatospuedesermuysignificativa.

1.Indexelascolumnassobrelasquerealizalabúsqueda,nosobrelasqueselecciona

LasmejorescolumnasparaindexarsonenlasqueaparecenlacláusulaWHEREolasnombradasenlascláusulasjoin.

2.Utiliceíndicesúnicos

Losíndicestrabajanmejorsobrecolumnasconvaloresúnico,ypeorconaquellasquetienemuchosvaloresduplicados.Porejemplo,siunacolumnacontienefechasytienevariosvaloresdiferentes,uníndicediferenciarálasfilasfácilmente,sinembargo,noleayudarátantosiseutilizaenunacolumnapararegistrarelvalorescomoverdadero,falsoyquecontienesólolosdosvalores"V"y"F"(cualquieraqueseaquebusque,tomarácasilamitaddelasfilas).

3.Utiliceíndicescortos

Sivaaindexarunacolumnadecadenas,especifiqueunalongitudprefijada,siempresquesearazonablehacerloasi,porejemplositieneunacolumnaCHAR(200),noindexelacolumnaenterasilamayorpartedelosvaloressonúnicosdentrodelos10o20primeroscaracteres.Indexarestos10o20primeroscaracteresleahorraramuchoespacioenelíndice,yprobablementeharámásrapidassuconsultas.

4.Noabusedelosíndices

Losíndicesdebenseractualizados,yposiblementereorganizados,cuandomodifiqueloscontenidosdesustablas.

Sitieneuníndicequeraramente,onunca,seusaestashastasrealentizandoelsistemavolviendomáslentadeformainnecesarialasmodificacionesdelatabla.

5.Considereeltipodecomparacionesarealizarenunregistro

Losíndicesseusanparaoperaciones<,<=","=,="">=,>yBETWEEN.TambienseusanparoperacionesLIKE,cuandoelpatróntieneunprefijoliteral.Sisólousaunacolumnaparaotrotipodeoperaciones,talescomoSTRCMP(),notienesentidoindexarlo.

Conclusión

Page 91: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 91 de 117

ComoconclusióntupuedesconseguirqueMySQLrindaabuenrendimientocongrandescantidadesdedatosperoparaellodebestenerencuentasuslimitacionesysabercualessonlascaracterísticasqueofrecenmejorrendimiento.

Fuente:eningles

EsteartículoesobradeManuGutierrezFuepublicadoporprimeravezen08/11/2007Disponibleonlineenhttp://desarrolloweb.com/articulos/porque-mysql-es-lento-con-grandes-tablas.html

Page 92: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 92 de 117

ContarcaracteresconMySQL

HacemosusodelasfuncionesparacontarcaracteresenMySQL.VariosejemplosdesentenciaSQLquecuentacaracteresdestrings.

EnestetallerdeMySQLvamosahacerusodelasfuncionesdellenguajeSQLparacontarcaracteresdeuncampoguardadoenunatabla.Esdecir,vamosaseleccionardiversosregistrosdeunatablayvamosacontarloscaracteresdeunodesuscampos.

EneljuegodefuncionesdeMySQLparastring(cadenasdecaracteres)tenemosvariasfuncionesparacontarcaracteres:

LENGTH(cadena)

Recibeunacadenaycuentaydevuelveelnúmerodecaracteres.

CHARACTER_LENGTH(cadena)

Recibetambiénunacadenaydevuelveelnúmerodecaracterescontados.

CHAR_LENGTH(cadena)

EsunsinónimodeCHARACTER_LENGTH.AunquenolotienentodaslasversionesdeMySQL.

LadiferenciaentreLENGTHyCHARACTER_LENGTHesqueenCHARACTER_LENGTHuncarácter"multibyte"cuentacomounsolocarácter.EnLENGTHcuentaelnúmerodebytesdelacadena.Asíqueenelcasodetenerunacadenacon5caracteresqueocupan2bytescadauno,LENGTHdevolvería10yCHARACTER_LENGTHsólo5.

PorahoravamosautilizarCHARACTER_LENGTH,queparecequenosdevolverálosresultadosqueesperamosobtener,elnúmerodecaracteresdelacadena,independientementequelacodificaciónpuedasermulti-byte.

SELECT character_length( 'un texto' )

Estasentenciadevolveríaelvalor8,queeselnúmerodecaracteresquetieneellacadena"untexto".

Page 93: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 93 de 117

Peroahorapongamosquequeremossacartodoslospaísesdeunatabla,juntoconelnúmerodecaracteresquetienecadaunadelascadenasdelnombredelpaís.

SELECT CHARACTER_LENGTH(nombre_pais), nombre_pais FROM pais

Estonosdevolveríaunconjuntoderegistrosconelnúmerodecaracteresdecadanombredelpaísyluegootrocampoconelnombredelpaís.

SELECT nombre_pais FROM pais where CHARACTER_LENGTH(nombre_pais)=6

Estonosdevuelvelosnombresdepaísquetienen6caracteres.

SELECT CHARACTER_LENGTH(nombre_pais) as 'numcaracteres', nombre_pais FROM pais ORDER BY CHARACTER_LENGTH(nombre_pais)

Estaúltimasentenciadevuelveunconjuntoderegistrosdondeelprimercampo,quehemosdadoelnombrede"numcaracteres"paraluegoreferirnosaél,muestraelnúmerodecaracteresyelsegundocampoelnombredelpaís.Luegoestáordenadoporlalongituddelacadena,contadatambiénporsuscaracteres.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen04/01/2008Disponibleonlineenhttp://desarrolloweb.com/articulos/contar-caracteres-con-mysql.html

Page 94: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 94 de 117

GestordeMySQLHeidiSQL

CómoutilizarHeidiSQLparaadminadministrarMySQLenservidoresremotosycómoconfigurarlaIPparaquesepuedaconectarconelservidormedianteelpaneldecontrolcPanel.

EstoysegurodequenoseréelúnicodelmundoquetrabajaconMySQLydeseapoderhacerlascosasmásrápidasysencillas.SituservidorestáadministradoporunpaneldecontrolcomocPanel,quizástehabrásdormidoliteralmente,comoyo,pulsandolinksyesperandounayotravezhastallegaratuadministradorPhpMyAdmin.

¡¡Todoestopuedesermuchomáscorto!!yparaellotevamosaayudarofreciéndoteunaherramientallamadaHeidiSQL,queestámuybienparapoderllevarlaadministracióndeunabasededatosMySQLqueestáenunservidorremoto.

HeidiSQLesunligeroprogramaparaWindowsquenosofreceunainterfazamigableparaadministrarMySQL,perotambiénsistemasgestoresSQLServerdeMicrosoft.Permitenavegarporlasbasesdedatosylastablas,editandocualquierinformación,creandoregistros,modificandotablas,vistas,procedimientos,triggersyengeneraltodoaquelloquenecesitaremoseneldíaadíadelaadministracióndebasesdedatos.

EnesteartículotecontaremosalgomássobreHeidiSQL,perotambiénteayudaremosaconfigurarelaccesoremotoatuservidor,validandolaIPdesdelaqueteconectasparaquetuMySQLtepermitaelaccesodesdeotrasredes,sinporelloperderenseguridad.

PeroantesdeponernosaelloquieroexplicarteporquéesunabuenaideautilizaralgúnsistemacomoHeidiSQLparaadministrarrápidamenteunabasededatosMySQL.

EltortuosocaminohaciaPhpMyAdmin

YotengoelservidoradministradoconelpaneldecontrolcPanel,peromeconstaqueestemismoproblemaquevoyarelataresmuysimilarconotrospanelesdecontrolcomoPlesk.EstoysaturadodehacersiemprelasmismasaccionesparapoderadministrarlabasededatosMySQLyporesoquierocompartircontigounosatajosparaquepuedasaccedermásfácilmentealaadministracióndetubasededatosyademás¡demanerasegura!

Lahistoriaserepite,unayotravez,alaccederaMySQLdesdeelcPanel:

Tecleamosnuestrodominio.com/cpanel

Esperamos...

Nossolicitaelusuarioylacontraseña,unavezintroducidaesperamos...

Page 95: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 95 de 117

UnavezdentrodelcPaneltenemosdecenasdeopcionesysepierdedevistadóndeseencuentraPhpMyAdmin...

Laprimeravez,movemoslacaja"Basededatos"condragalaprimeraposición,paraquenosepierdaentrelasmúltiplesopciones.

Page 96: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 96 de 117

HacemosclicenPhpMyAdminyesperamos...

Enservidoresdebidamenteconfigurados,elPhpMyAdmindeaccededesdecPanelusandohttpsyconunnúmerodepuertodiferenteal80,porcuestionesdeseguridad.DeahílarazóndeentraralphpMyAdmindesdeelcPanel...

Unavezcargadalapagina

Hacemosclicenlabasededatosausaryesperamos...

Realmenteestortuosaeincómodalaedicióndetablasyregistrosporquetardamosotros2o3clicsmásparaalcanzarunobjetodenuestrabasededatos.

Contemoslos"Esperamos"deesteartículoymultipliquemosporeltiempodecargaysalvo

Page 97: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 97 de 117

accesosmuyrápidosolocales,hemosgastadomuchotiemposiestepatróndetrabajolorepetimosvariasvecesaldía.

ConocerHeidiSQL

AcomienzosdelapopularizaciónenlawebdeMySQL,habíacomenzadounafiebredeconstruccióndeclientesparadichogestordebasededatos,quedesafortunadamenteeranenmuchoscasosincompatiblesconcadanuevaversióndeMySQL.

EntrelamultitudsefueabriendopasoMySqlFrontporserrápida,sinerroresygratuita.Cuálseríalasorpresa(hacetiempoya)alintentardescargaensumomentodelapáginaoficialyleerqueelproyectohabíasidovendido...

Afortunadamente,eldesarrolladorhabíacontinuadoelproyectoconotraherramientaquesiguesiendolibredeusoygratuita:www.heidisql.com

Yestemaravillosoclientenospuedeeliminarlos"esperando"ydejarnostodoelasuntodelaedicióncondosclics.Nonecesitamosdecirloagradecidosquepodremosestarconelusodeestaherramienta,queademásdesergratuita,nospermitehacerlasmismascosasqueyavenimoshaciendoconotrosadminstradorescomoPhpMyAdmin.

Entreotrasposibilidades,HeidiSQLnospermite:

Conectarconvariosservidoresalavezenunaúnicaventana.ConectarconservidoresMySQLporlíneadecomandos.ConectarconSSHorealizarconexionesSSL.Editartablas,vistas,procedimientosalmacenados,triggers,eventosagendados...CrearreportesSQL.Exportaroimportardatosdesdeohaciaotrasfuentesobasesdedatos.Porejemplo,importardatosquehayaenficherosdetextooexportarlosdatosdelastablasaficherosdetextocondiversosformatoscomoCSV,HTML,XML,SQL,arraysdePHP,etc.Administrarlosprivilegiosdelosusuarios.EscribirconsultasconresaltadodecódigoSQLycompletadodecódigoypreformatodecódigoSQLparaunamejorlectura.Monitorizarprocesosdelclienteymatarlossilonecesitamos.Búsquedasdeuntexto,nosoloenunatabla,sinoenmúltiples,porsinosabemosdóndeseencontraba.Optimizaciónyreparacióndetablas,etc.

ConfigurarelaccesoremotoatuservidordebasededatosconcPanel

Parausarlo,laúnicacondiciónesquetuservidoracepteconexionesremotasaMySQL,cosaquenoestádisponibleentodoslosservidoresLinux.

Situservidorpermitedichasconexiones,debesaveriguarcuálestuIPpúblicaenpaginascomowww.cualesmiip.comyanotarcuáleselnumerodeIPquetienesenelaccesoaInternet.

Page 98: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 98 de 117

Nota:deboserenfáticoenelasuntoporquemuchasvecesladirecciónIPdenuestrocomputadornoesladirecciónpúblicaqueasignanuestroproveedordeInternet,sinounaIPlocalcuandoestamosconectadosaunrouter,etc.Porotraparte,cabedecirtambiénquemuchasvecesnuestraIPvacambiandoconeltiempo,loqueseconocecomoIPdinámica.EnestoscasospodemosintentarhablarconnuestroproveedorparaquenosproporcionenunaIPestática,quesiempresealamisma,loquenosahorrarátenerqueconfigurarrepetidasveceslaIPdesdelaquesepermiteaccederanuestroservidor.

Nosdirigimosanuestrocpanel:EnnuestracajadebasededatoshacemosclicenMysqlRemota.

EnlasiguientepáginadebemosintroducirnuestradirecciónIPpública:

VamosautilizarelusuariohabitualparanuestraconexiónaMySQL.EnalgunoscasosesnecesariovolveraasignarlospermisosluegodeintroducirunaIPenlaopcióndeaccesoRemoto.

Page 99: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 99 de 117

Yunavezrealizadostodosestospasos,procederemosainstalarHeidiSQL.

Elprograma,aliniciar,nosmostraráunformulariodeconexionesydebemosconfigurar

Page 100: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 100 de 117

nuestraconexión.

EstansencillocomoescribirelHostname,User,Password(enalgunoscasosdebemosescribirelnombredelabasededatos).

Nota:Deboseñalarqueelusorepetidode"enalgunoscasos"esporquedespuésdeexperimentarconmuchascompañíasdehostingconservidorescompartidosydedicadoshenotadoqueexistendiferenciasdeconfiguraciónsegúnlaversióndeLinux,decpanelydemásquenosimpulsanaprobarantesdedesistirsinologramosconectarnosaMySQLporvíaremota.

Porejemplo,algunosHostingteasignanotronombreparaaccederaMySQL.

Algunosdebemosagregarlacombinacióndenombredeusuariodeaccesomasusuariodebasededatos.

Ejemplo"nombredeusuario_nombreusermysq"

AlcrearelusuariocPanelnosindicaelnombreexactodetodosmodos.

ConunainterfazintuitivaHeidiSQLnospermitemodificarrápidamentelaspropiedadesdeunabasededatostablaocampoocontenidodealgúnregistro.

Page 101: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 101 de 117

Comoestamoseditandolabasededatosdirectamente,enalgunoscasos(sinavegamosporelcontenidodeunregistro)cambiandoelfocoporejemplo,seactualizaelcontenidoautomáticamente.

Asíquedebemostenercuidadoporquenoexisteun"Undo"oDeshacer.

EsperoquepuedasaprovecharestaherramientayreducireltiempoediciónatubasededatosenMySQL.

EsteartículoesobradeHeislerPalmaFuepublicadoporprimeravezen10/07/2012Disponibleonlineenhttp://desarrolloweb.com/articulos/gestor-mysql-heidisql.html

Page 102: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 102 de 117

AccesoRemotoaMYSQL

CómoaccederaMYSQLvíaremotasintenerelpuertoabiertoysinquenadiemáspuedaaccederaél.

EnelmomentodeescribirelartículoGestordeMySQLHeidiSQLmeencontrabaconvariosañoscomowebmasterenhostingscompartidoscomomuchosdelosqueleenesto.

Sinembargo,alcrecerenvisitasynecesidadesyestartanlimitadoconlascaracterísticaspropiasdelosalojamientoscompartidos,migréaVPSyluegoaservidoresdedicados.

Alfinal,laadministracióndeservidoresdedicadostrasladalaspreocupacionespropiasdelosproveedoresdehostingatucabeza,yconeltemamásdelicado“Laseguridad”(ejemplodeello:enlosdíasenqueseescribíaesteartículo,sedescubriólavulnerabilidadheartbleed,quehizosudaratodoslosadministradores,quetuvieronqueactualizarrápidamentesistemaygenerarnuevoscertificados).

Claro,existenserviciosmanejadosqueaumentanmuchomáselcostodelhostingenloscualesestáspagandoporlaadministraciónymantenimientoconuncostopromediode100$adicionalesalservicio.

Bien:QueremosaccederaMySQLvíaremota,peronoqueremostenerelpuertoabiertoyqueremosquesolonosotrospodamosacceder.

Esteartículosebasaenquetieneselsiguienteescenario:

1. EntuservidorestácorriendounaversióndeLinux2. Usascomocortafuegos“ConfigureConfigServerFirewall”elfamosoCSF3. TienesMySQLcorriendoyelpuerto3306seencuentracerrado(comodebe)

EnelartículoGestordeMySQLHeidiSQLtieneselescenariodeque,sibienusaselpanelparaautorizarlosIPsqueseconectaránaMySQL,tienesladificultaddelpropio“meollomóvil”dondeteconectarásendiferentessitiosaredesWiFi....Otuproveedorcambiaacadaratola

Page 103: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 103 de 117

direcciónIPdetuconexión.AsíquenoresultaprácticoestarchequeandoacadaratoladirecciónIP.

Loprimeroesvisitarwww.no-ip.orgyabrirnosunacuentagratuita(No-IPpermiteidentificartuPCconunnombrededominiofácilderecordar).

Enelformulariodeinscripcióndeunavezpodemosescogerelnombrededominioquequeramosgratis.

TambiénpodemosingresarluegoenlaopciónHosts/Redirects>>ManageHostsycreareldominioquequeramos.

Page 104: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 104 de 117

Todoestoesparaunasolacosa:asociarnuestradirecciónIPdinámicaaldominiocreado.

PodemoshacerlodescargandoelsoftwareDUCdelamismapágina.

Despuésdeingresarnuestrosloginycontraseña,debemosactivarnuestrohosten“EDITHOST”

Page 105: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 105 de 117

Siusamosunrouter,opcionalmentepodemosusarlotambiéningresandodirectamentenuestrascredencialesydominioenlaopciónDynamicDNS.

EnesteejemplounTP-LINKenlaopciónDynamicDNS.

Page 106: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 106 de 117

EnlosdoscasosunPINGanuestrodominiodebedevolverunarespuestacorrecta(consoladesistemaoCMDsiusasWindows).

CuandotodoestáfuncionandoeshoradehacerquenuestroservidornospermitaingresaraMySQLdesdenuestrocomputadorconMySQLHeidiSQLuotrogestordeconexionesqueusemos;inclusopodemosusarnuestroMySQLlocalparaconectarnoseneldenuestroservidor.

Page 107: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 107 de 117

Laopción–hseguidadenuestrodominionopermiteconectarnosaservidoresexternos(muyútilparahacerbackupdenuestrasbasesdedatososubirgrandescantidadesdedatos).

¡Atención!,antesdeintentaringresar,vamosaconfigurarnuestroservidorparaello:

Laconfiguraciónseríalasiguiente:

Ingresamosanuestraconsoladeservidor,editamoselarchivodeconfiguración"/etc/csf/csf.conf"enlalíneaDYNDNSycambiamosoescribimosDYNDNS="600"---//actualizaránuestradirecciónIPcada10minutos.Enmicasoparticularlotengoen300---(cincominutos).

Editamoselarchivo"/etc/csf/csf.dyndns"yagregamosnuestrodominiodeestamanera:tcp:in:d=3306:s=dominiocreadoen-no-ipComosepuedeverenlapartetcp:in:d=3306:3306eselnúmerodepuertodeconexiónMySQL.

Cuandoestemoslistos,reiniciamoselfirewallconelcomandoCSF–rEsperamoslosminutosindicadosparaqueCSFactualicetudirecciónylisto.

Nota:SiadministrastusvpsoservidorviaSSHPuedesusarestomismocambiandooagregando"tcp:in:d=22:s=dominiocreadoen-no-ip",siendoelpuerto22elpuertodeconexiónSSHoelquehayasseleccionadoparaconectarte.

Esmuyimportantequeabrasunaventana/conexiónadicionaldeSSH,pruebesestoysitodosalemalenlaotraventanaconectadapuedasrecuperarlaconfiguración,(estoenloscasosdondetuúnicaadministraciónseaporSSH).

ConestosolotuIPtendráaccesoatuservidorvíaSSH------------

TuservidorsoloaceptaráconexionesdesdetucomputadorhaciaMySQL.

Tendráselpuerto3306cerradoparaevitarunaconexiónnoautorizadaypodrásconectarhaciamySQLremotamente.

Inicialmenteestosehacíacondyndns.comperoyanoofrecenunaversióngratuitayenelcasodewww.noip.comVitalwerksInternetSolutions,ofreceesteserviciogratisdesde1999yesperamosquecontinúeasípormuchosañosmás.

Probarsinuestropuerto3306seencuentraabiertodesdeWindowshacianuestro

Page 108: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 108 de 117

servidor(abiertoparatodoelmundosignificaquetuservidoresvulnerable).

DesdelaconsoladeSistemaCMDdebesejecutarelcomando"telnetnuestraIPdeservidor3306"obien"telnetnuestrodominio3306"

Sirecibesestetipoderespuestatieneselpuerto3306ydebesconfigurarapropiadamentetuCSFparaimpedirelaccesopordichopuerto.

ElusuarioqueusesparaaccederremotamenteaMSYQLdebetenerlospermisosparaello.RecomendamosnousarROOTparaaccederremotamente.Crearnuevousuarioconlospermisoscorrespondientesylaopción%envezdelocalhosto127.0.0.1

Page 109: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 109 de 117

EsteartículofueprobadoyescritoescuchandoelúltimoconciertodeSodaStereo2007.

EsteartículoesobradeHeislerPalmaFuepublicadoporprimeravezen30/05/2014Disponibleonlineenhttp://desarrolloweb.com/articulos/acceso-remoto-mysql.html

Page 110: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 110 de 117

MySQLconMAMPytrabajoconelterminal

NotassobreeltrabajodeMySQLconMAMP/MAMPPRO,cómoaccederalaconsoladeMySQLporlíneadecomandosenelterminal.

LamaneramáspopulardecontarconApache+PHP+MySQLenMacOSXesatravésdelconocidoMAMP,unaaplicaciónqueteofrecetodoesoyalgomásenunsolopaquete.DisponesdeMAMPoMAMPPRO,ambostesirvenparalomismoyamboscompartenlamismainstalacióndeMySQL,lasmismasbasesdedatos,etc.

EnesteartículoquierodejarunasnotasrápidassobrecómotrabajarconMySQLporlíneadecomandosoterminal,paranoolvidarmealgunasinvestigacionesypasosquehetenidoquerealizarparaqueelsistemamereconozcaelcomandomysql.

PorquélíneadecomandosMySQL

ParaadministrarunabasededatosMySQLcontamosconnumerosasherramientas,coninterfazwebcomoPhpMyAdminoconinterfazdeaplicacióndeescritoriocomoMySQLWorkbenchoSequelPro.Laformamenosvisualesjustamentelalíneadecomandos,porloquequizásmuchossepreguntaránsobrelanecesidaddedisponerdeunaccesoatravésdelterminal.

Puesbien,elterminalesunaliadoquesiempreestáahí.ElterminalesloúnicoquetienesenmuchosservidoresparapoderconectarteconunabasededatosMySQLytepermitenosolorealizarconsultas,sinorealizarbackups,restaurarlos,etc.CuandotienesunVPSoundedicadoloquevasatenersiempreeslalíneadecomandos.QuizáseresdelosqueprefierennopublicarentuservidorherramientascomoPhpMyAdmin,porlapuertadeentradaqueestásabriendoaposiblesataques.Porelmismomotivo,quizástampocoteagradalaideadeabrirpuertosdestinadosaltrabajoconMySQLdesdeotrasredes.Entoncesloquetequedaeslalíneadecomandos.

Page 111: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 111 de 117

Trabajarconlalíneadecomandossiempreteharámáslibre,porqueevitasdependerdetercerosprogramas.Además,siquieresreproducirentuordenadorlocallascondicionesdetrabajoquevasatenerconlosservidoresremotosyacostumbrartealdíaadíaconlalíneadecomandos,oparahacertareasdeadministracióndebasesdedatosnodisponiblesdeotromodo,entoncesteinteresausarelclientedeterminaldeMySQL.

DóndeestáelclientedeMySQLenMAMP

ParaaccederalclientedeMySQLporterminal,paragestionarlasbasesdedatos,yoestabaacostumbradoausarsimplementeelcomando"mysql".AlmenosenWindowseinclusoenWindows,peromisorpresaesquedespuésdeinstalarMAMPnoestádisponibleesecomando.Elerrorqueteencontrarás,sitepasacomoami,esqueallanzarelcomandorecibeselmensaje.

mysql: command not found

LoprimeroquepiensasesquenoestáenelPATH.EntoncestevasaldirectoriodetuinstalacióndeMAMPyencontraráselclientedeMySQLporlíneadecomandos.Elarchivosellamamysqlyestáenlaruta:

/Applications/MAMP/Library/bin/

LomásnormalesquedesdeesarutainvocaseselcomandodeMySQL"mysql"yquetefuncionase,peronoesasí.Tampocoindicandolarutacompletaalcliente/Applications/MAMP/Library/bin/mysqlfunciona.Hayquehaceralgunospasos

Nota:Atribuyolaautoríadeestaguíaadondelaheencontradoyo(eninglés):http://www.webbykat.com/2012/06/solving-sh-mysql-command-not-found-mamp-pro-2

1. Primeroasegúratequetucomando"mysql"estáenlarutaqueteheindicado.Generalmenteloencontrarásen/Applications/MAMP/Library/bin/mysqlç

2. Creaunarchivollamado".bash_profile"enturuta~/(oeditaelquepuedasteneranteriormente).Tenencuentaquelosarchivosquecomienzanporunpunto"."enMacOSX(asícomoenLinux)sonarchivosocultos,porloquenoloencontrarásconfinderesearchivoaunqueestécreado.

3. Editaesearchivoyagregalalínea.

export PATH=$PATH:/Applications/MAMP/Library/bin

1. Porfavor,tenencuentaquelarutademysqlcorrespondaconlaqueestásagregandoenel".bash_profile"

2. Guardaelarchivo

Page 112: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 112 de 117

3. Reiniciaelterminal,puesesenuevoperfilnoestarádisponiblehastaquenosalgasdeltododelprogramaterminal.Menúsuperior"Terminal/SalirdeTerminal"

Conestoyapodríasaccederatucomandomysqlparaconectarconelsistemagestordebasededatos.Elcomandoseráalgocomo:

mysql -h localhost -u root -p

Acontinuacióntepedirátuclavede"root".

Nota:Nolohemosdicho,perotendrásqueasegurartequeelserviciodeMySQLestáiniciado,claroestá.

Paramásopcionesdelclientemysqldeterminal,porfavor,leeelartículodeMySQLporlíneadecomandos,queesválidoparacualquiertipodesistemaoperativo.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen17/12/2014Disponibleonlineenhttp://desarrolloweb.com/articulos/mysql-mamp-trabajo-terminal.html

Page 113: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 113 de 117

EsquemagráficodelabaseMySQLconMySQLWorkbench

Cómorealizarelesquemagráfico,relacionesentretablasysusdistintoscampos,nombres,etc.usandoelprogramagratuitoMySQLWorkbench.

EnesteartículotevamosaexplicarcómoconseguirrealizarrápidamenteungráficodelesquemadetubasededatosMySQL,usandounsoftwaregratuitoqueseguramenteconozcas,llamadoMySQLWorkbench.

MySQLWorkbenchesunprogramacreadoporOracle,elactualdueñodelsistemagestordebasededatosMySQL.Susfuncionessondiversas,pudiendorealizarlaadministracióncompletadeunabasededatos,crear,editaroeliminartablas,definirrelaciones,versusdatos,entresusopcionesmásbásicas.Enresumen,esuncompletoprograma,quepodríasustituiralpopularPhpMyAdmin,perodeunamaneramuchomásprofesional.

Lapartequevamosatratarenesteartículoesladecrearelesquemaderelacionesentretablas,queesalgoquenosvendrábienteneramanocuandoestamosdesarrollandounproyecto.

Conectarconunabasededatos

Lógicamente,unodelospasosparaobtenerelesquemaseráconectarconlabasededatosquetengamosqueobtenerlarepresentacióndesuschema.Estepasoserealizadesdelapantalla"Home"deMySQLWorkbench,desdeeliconodelacasitaenlaspestañasdelprograma.

Aquípodremosadministrarlasconexionesconbasededatos,loquenosfacilitaráelaccesoadiversosservidoresdeMySQLconlosquetrabajemosdiariamente.Paracrearnuevasconexionestienesqueapretarelbotón"+".

Page 114: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 114 de 117

EstapartedelaconexióndependemuchodelservidorMySQLconelquequierasenlazarte,porqueexistendiversostiposdeconexionesposibles,desdelocalesaremotas,asícomodiversosprotocolos,comoelTCP/IPoelSSH.Losdatosdeconexiónlosdebesdeconocertú,perosiestásconectandoaunservidorlocalgeneralmenteusarásTCP/IPyhostname127.0.0.1.Usuariorootnormalmenteylaclavequetengas.

Unavezconfiguradalaconexión,aprietaselbotón"Ok",aunquetambiénpuedesantesprobarquefuncionaconelbotón"TestConnection".

Nota:Paratrabajarconunabasededatosdeterminada,tendrásqueelegirlaenlasección"SCHEMAS",enlapartedelaizquierda.

Database/ReverseEngineer

Apartirdelmenú"Database,ReverseEngineer"podráscomenzarelprocesoparacrearelesquemadelabasededatosquenecesites.Podrásencontrarunasistentepararealizarlaserie

Page 115: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 115 de 117

depasosnecesarios.

Comienzasindicandolaconexiónquequierasusar,dentrodetodaslasconexionesquepuedestenercondistintosservidoresMySQL,métododeconexión,etc.Esoterellenaráloscamposdeconexióndelformulariodeabajo.Aprietas"Continue".

EntoncesMySQLWorkbenchseconectaparatomarlalistadelosschemasdisponiblesenelservidorconectado.Apretas"Continue"unavezelprocesotermine.

Apareceráentonceslalistadelosesquemasdisponibles.Seleccionaspueselqueteintereseyluegoelbotónparacontinuar.

Nota:Loqueconocemospopularmentecomouna"basededatos",oseaunconjuntodetablasrelacionadasentresi,enMySQLWorkbenchseconoceconlapalabra"schema".Elconceptoesequivalente.

Page 116: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 116 de 117

Esaoperaciónrealizarálalecturadetodaslastablasysusdescripciones,relaciones,etc.Apretasdenuevo"Continue"

Porúltimonosaparecenlosobjetosdelosquesevaarealizarlaingenieríainversaparaobtenerelesquemaderelacionesentretablas.Seleccionasyentoncespulsaselbotón"Execute".

Terminadoelprocesoapareceyaelesquemadetubasededatos.Tendrásquepulsar"Continue"unavezmásparacerrarelasistente.

ElesquemateapareceenunapestañanuevadentrodeMySQLWorkbench.Eselmomentodeacomodartustablasparacolocarlasenellugarmáslógico,segúnteinteresequeseorganiceeldiagrama.Simplementepinchasyarrastraslastablasdondequieras.

ExportarelesquemadelabasededatosMySQLaPDF

ElesquemalopuedessalvarenelformatointernodeMySQLWorkbench,conelbotóncorrespondiente,esotefacilitaráabrirlomásadelantepararecolocarlastablasporejemplo.PerogeneralmenteloquequerráshaceresexportareldiagramaaunPDFparapoderabrirloconotrosprogramas,enviarloatuscompañerosoimprimirloparatenerloamanoduranteel

Page 117: Taller de MySQL - patia-cauca.gov.copatia-cauca.gov.co/Ciudadanos/RepositorioPQRD/taller-mysql.pdf · Diversos artículos prácticos sobre el trabajo con la base de datos MySQL ...

Taller de MySQL

http://desarrolloweb.com/manuales/taller-mysql.html Página 117 de 117

desarrollo.

Estosehacefácilmentedesdeelmenú"File/Export/ExportasSinglePagePDF…".AbriráundiálogoparaseleccionarelarchivoPDFagenerar.Estaparteyanotienemásmisterio.

Estoestodo!Eldiagramahaquedadolistoparaqueelesquemadelabasededatosestésiempreamano.

EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen28/09/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/esquema-grafico-base-mysql-workbench.html