SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
MySQL                                                              http://www.splitcc.net/Documents/TutorialMySQL...




         MySQL
         Alvaro Marín Illera alvaro at rigel.deusto.es

         Instalación, configuración y manejo de MySQL




         Introducción
         Su principal objetivo de diseño fue la velocidad, por ello se suprimieron algunas características de los
         demás SGBDs (Sistema de Gestion de Base de Datos), como las transacciones y las subselects. Consume
         pocos recursos y se distribuye bajo licencia GPL (a partir de la versión 3.22).

         Ventajas:

             Mayor rendimiento
             Mejores utilidades de admon
             Integracón perfecta con PHP
             Sin límites en los tamaños de los registros
             Mejor control de acceso de usuarios

         El lenguaje SQL para acceder a bases de datos relacionales, fue lanzado al mercado por IBM al mercado
         allá por 1981, después de varios años de desarrollo y en 1983 empezó a vender DB2, un sistema de
         gestión de bases de datos que se hizo muy popular. Posteriormente, el Instituto de Estándares Nacional
         Americano(ANSI) adoptó el SQL como estándar para el acceso a bases de datos relacionales, y al añó
         siguiente, se convirtió en estándar ISO.
         Actualmente, se encuentra en fase de estandarización la versión 3, que será un lenguaje por sí mismo, y
         no necesitará de otros para actuar, nuevos tipos de datos complejos...

         Alrededor de la década del 90, Michael Windenis (monty@analytikerna.se) comenzó a usar mSQL
         (http://www.hughes.com.au/) para conectar tablas usando sus propias rutinas de bajo nivel (ISAM). Sin
         embargo, después de algunos testeos llego a la conclusión que mSQL no era lo suficientemente rápido ni
         flexible para sus necesidades. De todo esto surgió en una nueva interfaz SQL (claro que con código mas
         portable) con algunas apariencias similares en la API de C y en los nombres y funciones de muchos de sus
         programas. Esto había sido hecho para lograr con relativa facilidad portar aplicaciones y utilidades de
         MiniSQL a MySQL.

         Este tutorial va a tratar de introducir al lector en el amplio mundo de MySQL. Para un estudio más
         amplio, recomiendo la visita del completo tutorial que hay en su web www.mysql.com.


         Instalacion y configuración
         Para instalar MySQL, si estamos en Debian, basta con hacer lo siguiente:

         apt-get install mysql-server

         Se nos preguntan varios aspectos, como si queremos "purgar" o borrar las bases de datos, cuando
         desinstalemos el programa o si queremos que se ejecute cada vez que iniciemos la máquina. Una vez
         respondidas, ya tendremos el servidor instalado.

         El archivo de configuración, está situado en /etc/mysql/my.cfg . También en el home de cada usuario, se
         puede crear un .my.cnf para definir los parámetros de los clientes, de tal forma de que si un parámetro
         está definido en los dos, toma preferencia el último leido por MySQL, es decir, el del ~/.my.cnf, como
         veremos posteriormente.



1 de 7                                                                                                        10/11/09 17:40
MySQL                                                               http://www.splitcc.net/Documents/TutorialMySQL...


         En /etc/mysql/my.cnf entonces, se indica dónde guardar los logs que se generan, puerto por el que
         escuchará las conexiones... Por defecto, el acceso por red, está deshabilitado por seguridad. Para
         habilitarlo, comentaremos la línea "skip-networking", con lo que al reiniciar el servicio tendremos MySQL
         a la escucha, en el puerto TCP 3306.

         En cuanto a los logs, se indican en el archivo de configuración anterior. Por defecto, en /var/mysql
         /mysql.log se guardan las consultas realizadas contra las bases de datos que "alberga" MySQL. Los
         errores y demás, en /var/log/mysql/mysql.err.


         Usando MySQL
         Junto con el servidor de base de datos, MySQL nos proporciona otras herramientas, como el cliente
         mysql que utilizaremos para conectarnos al servidor a partir de ahora. Ejecutando

         $mysql -h

         vemos todas las opciones de este programa, entre las más importantes
         -h => host donde está el servidor (por defecto localhost)
         -u => usuario
         -p => password
         -P => puerto

         Para conectarnos en un principio, basta con ejecutar en la shell:

         $mysql -u root -p

         Por defecto deja al usuario root SIN contraseña, lo cambiaremos luego.
         Entramos en MySQL entonces:

         $mysql -u root -p

         Reading table information for completion of table and column names
         You can turn off this feature to get a quicker startup with -A

         Welcome to the MySQL monitor. Commands end with ; or g.
         Your MySQL connection id is 8 to server version: 3.23.49-log

         Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

         mysql>

         MySQL tiene "auto completado" de comandos, como el bash. Así que podemos dar al [Tab] para ver todas
         los posibles comandos a ejecutar. Para empezar vamos a ver qué bases de datos tenemos ya creadas por
         defecto:

         mysql>show databases;

         La BD mysql es la principal del servidor. Para poder usarla y hacer consultas sobre ella, debemos indicar
         a MySQL que queremos trabajar con dicha BD:

         mysql>use mysql;
         Database changed

         A partir de ahora, todas las sentencias SQL que hagamos van a ser sobre las tablas de esta base de datos.
         Si en un momento dado, queremos ver con cuál estamos trabajando, lo podemos hacer con:

         mysql> select database();
         +------------+
         | database() |
         +------------+
         | mysql      |
         +------------+
         1 row in set (0.00 sec)



2 de 7                                                                                                          10/11/09 17:40
MySQL                                                                 http://www.splitcc.net/Documents/TutorialMySQL...


         También podemos hacerlo para recordar el usuario con el que estabamos:

         mysql>select user();

         Para ver las tablas de las que está formada, lo hacemos con:

         mysql>show tables;
         +-----------------+
         | Tables_in_mysql |
         +-----------------+
         | columns_priv    |
         | db              |
         | func            |
         | host            |
         | tables_priv     |
         | user            |
         +-----------------+
         6 rows in set (0.00 sec)

         La tabla tables_priv, correponde a los permisos de los usuarios a nivel de tablas, es decir, en qué tablas
         puede hacer consultas cada usuario.
         La tabla columns_priv, corresponde con los permisos a nivel de columna Nos interesan las tablas de db y
         user. En la primera, se encuentran los permisos que tienen cada usuario en una determinada BD y el
         user están los usuarios del sistema.

         mysql>SELECT * FROM user;

         muestra todos los usuarios de MySQL, el host desde el que está permitido que se conecte, la contraseña
         y si tiene o no privilegios para hacer selects, inserts... sobre esta tabla y apagar/reiniciar...el servidor.
         Vamos a añadir un usuario nuevo:

         mysql>insert into user (Host,User,Password) values("localhost","ghost",password('ghost'));

         En la tabla db, tenemos los permisos que tiene cada usuario para una determinada base de datos, si
         puede hacer selects, inserts... deberíamos hacer una nueva insert en esta tabla... todo esto puede ser
         bastante "pesado" por lo que se creó una herramienta para manejar más fácilmente todo esto, el
         comando GRANT.
         Vamos a repetir lo anterior pero con este nuevo comando. Antes borramos el usuario creado con:

         mysql>DELETE FROM user WHERE User="ghost" and Host="localhost";

         y lo creamos usando GRANT:

         GRANT privileges(columns) ON what TO user IDENTIFIED BY "password" [WITH GRANT OPTION];

         Con esto, se crea una nueva entrada en la tabla mysql.user y mysql.db. La contraseña es cifrada con la
         función vista antes (password()).
         Vamos a crear una BD llamada BD y le damos permisos al nuevo usuario en ella:

         mysql>create database BDghost;
         mysql>GRANT ALL ON BDghost.* TO ghost@localhost IDENTIFIED BY "ghost";

         Donde los privilegios pueden ser ALTER,CREATE,DELETE,DROP...ALL,USAGE(se crea el user pero sin
         privilegios).
         La opcion WITH GRANT OPTION, permite que el usuario de permisos a otros.
         El user, puede ser de la forma user@hostname. Si no se especifica la máquina desde la que el usuario se
         conectará, se le permitirá desde cualquier sitio, por lo que aparecerá un '%' en la columna Host de la
         tabla.
         Vemos el usuario creado con;

         mysql>select * from user;

         y sus privilegios en la base de datos que crearemos:




3 de 7                                                                                                          10/11/09 17:40
MySQL                                                                http://www.splitcc.net/Documents/TutorialMySQL...


         mysql>select * from db;

         Para eliminar privilegios, tenemos REVOKE:

         mysql>REVOKE privileges(columns) ON what FROM user;

         Por ejemplo, si queremos negar al usuario 'ghost' la posibilidad de borrar las tablas de la base de datos, lo
         haríamos de la siguiente forma:

         mysql> REVOKE DROP ON BDghost.* FROM ghost@localhost;

         Pero esto no elimina los usuarios completamente del sistema, solo le quita los privilegios. Para eliminarlo
         completamente deberemos ir a la tabla user de la base de datos mysql y borrarlo "a mano" con un
         sentencia delete, como hemos visto antes.

         Como hemos dicho, en un principio, MySQL deja la cuenta root sin contraseña, por lo que habrá que
         cambiarlo inmediatamente, para ello: Diferentes formas:

         mysql> SET PASSWORD FOR root@localhost=password('nuevapass');

         o cambiando directamente en la tabla user:

         $mysql -u root mysql -p
         mysql> UPDATE user SET Password=password('nuevapass') WHERE user='root';
         mysql> FLUSH PRIVILEGES;

         Salimos con exit; Ahora vamos a conectarnos con el usuario que acabamos de crear, para ello lo podemos
         hacer con

         $mysql -u ghost -p   (habría que poner -h hostname si estamos en otra máquina)

         pero resulta muy util crearse un .my.cnf (nótese el '.' para ocultar el archivo) en nuestro home, con las
         siguientes opciones:

         [client]
         host=localhost
         user=ghost
         password=ghost

         Lógicamente, este archivo deberá tener solamente permisos de lectura para el usuario para ello,
         hacemos:

         $chmod 600 .my.cnf

         En el caso de que accederíamos todo el rato a una base de datos, podríamos poner tambien:

         database=BDghost

         De esta forma, para conectarnos a mysql, ahora nos basta con poner mysql sin parámetro alguno desde
         la shell y se nos conectara con los parámetros dados en .my.cnf


         Creando una Base de Datos en MySQL
         Vamos a crear una base de datos ejemplo.
         Primeramente, creamos elarchivo .sql con todas las sentencias SQL para crear las tablas. Para ello, con
         nuestro editor favorito, editamos el fichero :

         CREATE TABLE Usuario (
                 id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                 nick varchar(40) NOT NULL,
                 email varchar(60),
                 web varchar(100)
         );




4 de 7                                                                                                         10/11/09 17:40
MySQL                                                                http://www.splitcc.net/Documents/TutorialMySQL...


         CREATE TABLE Mensaje (
                 id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                 autor int(5) NOT NULL,
                 fecha date,
                 texto blob,
                 padre int(5),
                 tema int(8),
                 FOREIGN KEY (autor) REFERENCES Usuario(id),
                 FOREIGN KEY (tema) REFERENCES Tema(id)
         );

         CREATE TABLE Tema (
                 id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                 nombre varchar(20) NOT NULL,
                 descripcion varchar(60)
         );

         Una vez creado el archivo, se lo pasamos a MySQL:

         $mysql -u ghost -p BDghost < foros.sql

         o si tenemos el .my.cnf anterior creado :

         mysql < foros.sql

         de tal forma, que lo copiará con la base de datos, usuario y pass del archivo .my.cnf.

         MySQL acepta un montón de tipos de datos como
         int(tinyint,smallint,mediumint,bigint),float,double,char,varchar,blob,mediumblob,date,time...
         Destacar también el atributo AUTO_INCREMENT, de id por ejemplo. Con esto indicamos, que cada vez
         que se inserte una fila en la tabla, MySQL asignará un nº al id, que será el posterior al anterioriormente
         asignado.
         De esta forma, tenemos secuencias enteras de ids sin necesitar de "llevar la cuenta" ni nada por el estilo.
         Al hacer la insert, será con el valor NULL y MySQL se encarga automáticamente de generarlo. También
         se puede introducir un valor para saltarse el autoincrement, pero dará error si ya existe. Se puede
         definir un valor de inicio para el AUTO_INCREMENT, para que empieze a contar desde un valor. Esto se
         hace asgnadole dicho valor al crear la tabla.

         Podemos ver las tablas que acabamos de crear, reconectándonos al servidor y poniendo:


         mysql> show tables;
         +-------------------+
         | Tables_in_BDghost |
         +-------------------+
         | Mensaje           |
         | Tema              |
         | Usuario           |
         +-------------------+
         3 rows in set (0.00 sec)


         Para ver la descripción de cada tabla (columnas, tipos...), tenemos el comando desc o describe. Por
         ejemplo:

         mysql> describe Usuario;
         +-------+--------------+------+-----+---------+----------------+
         | Field | Type         | Null | Key | Default | Extra          |
         +-------+--------------+------+-----+---------+----------------+
         | id    | int(8)       |      | PRI | NULL    | auto_increment |
         | nick | varchar(40) |        |     |         |                |
         | email | varchar(60) | YES |       | NULL    |                |
         | web   | varchar(100) | YES |      | NULL    |                |
         +-------+--------------+------+-----+---------+----------------+




5 de 7                                                                                                         10/11/09 17:40
MySQL                                                                  http://www.splitcc.net/Documents/TutorialMySQL...


         4 rows in set (0.00 sec)

         mysql> desc Mensaje;
         +-------+--------+------+-----+---------+----------------+
         | Field | Type   | Null | Key | Default | Extra          |
         +-------+--------+------+-----+---------+----------------+
         | id    | int(8) |      | PRI | NULL    | auto_increment |
         | autor | int(5) |      |     | 0       |                |
         | fecha | date   | YES |      | NULL    |                |
         | texto | blob   | YES |      | NULL    |                |
         | padre | int(5) | YES |      | NULL    |                |
         | tema | int(8) | YES |       | NULL    |                |
         +-------+--------+------+-----+---------+----------------+
         6 rows in set (0.00 sec)

         Explicado esto, podemos hacer las correspondientes inserts a las tablas, por ejemplo:

         mysql>insert   into   Usuario values(NULL,"split","split77@terra.es","http://split.no-ip.org");
         mysql>insert   into   Tema values(NULL,"GNU/Linux","Tema sobre GNU/Linux");
         mysql>insert   into   Mensaje values(NULL,1,now(),"Primer mensaje",NULL,1);
         mysql>insert   into   Usuario values(NULL,"cicatriz","cicatriz@enlamatriz.org","");
         mysql>insert   into   Mensaje values(NULL,1,now(),"Segundo Mensaje",NULL,1);

         Para hacer una consulta sencilla de todos los mensajes que ha escrito split, hacemos:

         mysql> select Mensaje.texto from Mensaje,Usuario where Usuario.id=Mensaje.autor and Usuario.nick="split";
         +-----------------+
         | texto           |
         +-----------------+
         | Primer mensaje |
         | Segundo Mensaje |
         +-----------------+
         2 rows in set (0.01 sec)



         Backups
         Con este otro programa integrado en el "paquete" de MySQL, podemos hacer copias de seguridad
         fácilmente ya que nos vuelca todo el contenido de la(s) base de datos en archivos de texto, para poder
         posteriormente restaurarlos.
         Desde la shell podemos hacer

         $mysqldump -u ghost -p BDghost > backup.sql

         Si tenemos el .my.cnf dará un error de --databases. Para solucionarlo, renombramos temporalmente el
         archivo

         $mv .my.cnf .my.cnf.OLD

         y ya podemos hacer el backup tranquilamente.

         Pero este comando tiene bastantes opciones como:
         --all-databases => vuelca todas las bases de datos que tiene MySQL (hacen falta permisos en todas ellas,
         claro)
         --add-drop-table => añade una sentencia al principio del archivo de backup para que si se tiene que
         restaurar
         borre la tabla existente. --add-locks => añade las sentencias de bloqueo y desbloqueo para hacer las
         inserts

         Para poder restaurar la base de datos, hacemos:

         $mysql -u ghost -p BDghost < backup.sql

         o como hemos dicho, si tenemos el .my.cnf con los datos apropiados:


6 de 7                                                                                                      10/11/09 17:40
MySQL                                                              http://www.splitcc.net/Documents/TutorialMySQL...


         $mysql < backup.sql


         Otros
         Con el fin de hacer el manejo de MySQL un poco más "amigable", hay programas como el PHPMyAdmin,
         que es un front-end vía web para el acceso a las bases de datos y sus tablas.
         Lo podemos instalar como siempre:

         apt-get intall phpmyadmin

         Depende del servidor web Apache por lo que nos pedirá instalarlo también.
         Para acceder, una vez arrancado el Apache, basta con poner en el navegador http://localhost
         /phpmyadmin y se nos pedirá un nombre de usuario y una contraseña para el acceso a las bases de datos,
         como hemos tenido que poner en nuestro .my.cnf por ejemplo.
         Una vez que se nos permita el acceso, tenemos la posibildad de consultar las tablas, insertar filas,
         modificarlas... y un montón de opciones vía web y muy comodamente.
         Sin duda, herramienta recomendable para el manejo de grandes bases de datos.




                                     Alvaro Marin, 2004. Algunos derechos reservados.
                                     http://creativecommons.org/licenses/by-nc-sa/2.0/




7 de 7                                                                                                  10/11/09 17:40

Más contenido relacionado

La actualidad más candente

Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuDavid Vevelas
 
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTERREPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTEREduardo Schenker
 
Crear bases de datos replicadas maestro
Crear bases de datos replicadas maestroCrear bases de datos replicadas maestro
Crear bases de datos replicadas maestroGustavo Guerra
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Ecatel SRL
 
07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin07 Php. Instalando Php My Admin
07 Php. Instalando Php My AdminJosé M. Padilla
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysqlquiqueohio
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionhugoAlvidrez
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datostickyandres
 
Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Bruno Regusci
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en WindowsErick Cruz
 
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10Ashley Stronghold Witwicky
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
 

La actualidad más candente (14)

Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTERREPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
 
Crear bases de datos replicadas maestro
Crear bases de datos replicadas maestroCrear bases de datos replicadas maestro
Crear bases de datos replicadas maestro
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1
 
07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysql
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datos
 
MYSQL
MYSQL MYSQL
MYSQL
 
Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10
instalacion-configuracion-y-comprobacion-de-un-my sql-cluster-en-ubuntu-11-10
 
Clúster
ClústerClúster
Clúster
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 

Destacado

Poster cursos 2011
Poster cursos 2011Poster cursos 2011
Poster cursos 2011Fundación
 
Interpetacion tavec
Interpetacion tavecInterpetacion tavec
Interpetacion tavecDann Arriaga
 
Analisis neuropsicologico vigotskiano del aprendizaje
Analisis neuropsicologico vigotskiano del aprendizajeAnalisis neuropsicologico vigotskiano del aprendizaje
Analisis neuropsicologico vigotskiano del aprendizajejoccygarcia
 
Bateria cognitiva breve en consultorio para nps
Bateria cognitiva breve en consultorio para npsBateria cognitiva breve en consultorio para nps
Bateria cognitiva breve en consultorio para npsDario Yac
 
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...Juan Rodrigo Tuesta-Nole
 
Evaluación neuropsicologica neuropsi - Atención y memoria. Ostrosky
Evaluación neuropsicologica neuropsi - Atención y memoria. OstroskyEvaluación neuropsicologica neuropsi - Atención y memoria. Ostrosky
Evaluación neuropsicologica neuropsi - Atención y memoria. OstroskyMarisol Rincon
 
Evaluación neuropsicológica
Evaluación neuropsicológicaEvaluación neuropsicológica
Evaluación neuropsicológicaAlejandro Ramos
 
Test de-boston-denominacion-y-token
Test de-boston-denominacion-y-tokenTest de-boston-denominacion-y-token
Test de-boston-denominacion-y-tokenDaniel Saldaña
 
Trastornos neurocognitivos. segun el dsm 5
Trastornos neurocognitivos. segun el dsm 5Trastornos neurocognitivos. segun el dsm 5
Trastornos neurocognitivos. segun el dsm 5Randymgz Castillo Castro
 
Informe psicológico
Informe psicológicoInforme psicológico
Informe psicológicosally42
 
Evaluacion neuropsicologica
Evaluacion neuropsicologicaEvaluacion neuropsicologica
Evaluacion neuropsicologicaMonica Sandoval
 

Destacado (17)

Poster cursos 2011
Poster cursos 2011Poster cursos 2011
Poster cursos 2011
 
Interpetacion tavec
Interpetacion tavecInterpetacion tavec
Interpetacion tavec
 
Analisis neuropsicologico vigotskiano del aprendizaje
Analisis neuropsicologico vigotskiano del aprendizajeAnalisis neuropsicologico vigotskiano del aprendizaje
Analisis neuropsicologico vigotskiano del aprendizaje
 
Informe wais no. 1
Informe wais no. 1Informe wais no. 1
Informe wais no. 1
 
Bateria cognitiva breve en consultorio para nps
Bateria cognitiva breve en consultorio para npsBateria cognitiva breve en consultorio para nps
Bateria cognitiva breve en consultorio para nps
 
Neuropsi
NeuropsiNeuropsi
Neuropsi
 
Test de Token protocolo
Test de Token protocoloTest de Token protocolo
Test de Token protocolo
 
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...
Evaluación del deterioro cognitivo en el Adulto Mayor: Instrumentos - MC. MSc...
 
Evaluación neuropsicologica neuropsi - Atención y memoria. Ostrosky
Evaluación neuropsicologica neuropsi - Atención y memoria. OstroskyEvaluación neuropsicologica neuropsi - Atención y memoria. Ostrosky
Evaluación neuropsicologica neuropsi - Atención y memoria. Ostrosky
 
Evaluación neuropsicológica
Evaluación neuropsicológicaEvaluación neuropsicológica
Evaluación neuropsicológica
 
Test de-boston-denominacion-y-token
Test de-boston-denominacion-y-tokenTest de-boston-denominacion-y-token
Test de-boston-denominacion-y-token
 
Trastornos neurocognitivos. segun el dsm 5
Trastornos neurocognitivos. segun el dsm 5Trastornos neurocognitivos. segun el dsm 5
Trastornos neurocognitivos. segun el dsm 5
 
Modelo adultos nuevo
Modelo adultos nuevoModelo adultos nuevo
Modelo adultos nuevo
 
Informe psicológico
Informe psicológicoInforme psicológico
Informe psicológico
 
TEST DE RAVEN . Informe Psicológico
TEST DE RAVEN . Informe PsicológicoTEST DE RAVEN . Informe Psicológico
TEST DE RAVEN . Informe Psicológico
 
Listado de algunas pruebas psicologicas
Listado de algunas pruebas psicologicasListado de algunas pruebas psicologicas
Listado de algunas pruebas psicologicas
 
Evaluacion neuropsicologica
Evaluacion neuropsicologicaEvaluacion neuropsicologica
Evaluacion neuropsicologica
 

Similar a Mysql

Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLcamposer
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysqlGiovanni Peruch
 
Mysql(1)
Mysql(1)Mysql(1)
Mysql(1)Iri Lis
 
Html,php
Html,phpHtml,php
Html,phpsoftyed
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLIvan Luis Jimenez
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity EditionMiguel Angel
 
Gestion de datos[1].pdf
Gestion de datos[1].pdfGestion de datos[1].pdf
Gestion de datos[1].pdfMARIAQUIROS19
 
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB  en Debian BullseyePostfix y Dovecot con cuentas MariaDB  en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB en Debian BullseyeHenry Cristian Cuesta Vega
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_oooYuzel Sederap
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_oooYuzel Sederap
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 

Similar a Mysql (20)

Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Manual de mysql
Manual de mysqlManual de mysql
Manual de mysql
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 
Mysql(1)
Mysql(1)Mysql(1)
Mysql(1)
 
Html,php
Html,phpHtml,php
Html,php
 
Mysql
MysqlMysql
Mysql
 
Mysql
MysqlMysql
Mysql
 
Tema 7 Trabajando Con Mysql
Tema 7 Trabajando Con MysqlTema 7 Trabajando Con Mysql
Tema 7 Trabajando Con Mysql
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQL
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity Edition
 
Gestion de datos[1].pdf
Gestion de datos[1].pdfGestion de datos[1].pdf
Gestion de datos[1].pdf
 
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB  en Debian BullseyePostfix y Dovecot con cuentas MariaDB  en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
 
My sql
My sqlMy sql
My sql
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 

Más de Alvaro Marin

Seguridad en sistemas_de_correo_electronico
Seguridad en sistemas_de_correo_electronicoSeguridad en sistemas_de_correo_electronico
Seguridad en sistemas_de_correo_electronicoAlvaro Marin
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
SPF - Sender Policy Framework
SPF - Sender Policy FrameworkSPF - Sender Policy Framework
SPF - Sender Policy FrameworkAlvaro Marin
 
Resumen MAAWG 2004
Resumen MAAWG 2004Resumen MAAWG 2004
Resumen MAAWG 2004Alvaro Marin
 
Abuse Reporting Fromat
Abuse Reporting FromatAbuse Reporting Fromat
Abuse Reporting FromatAlvaro Marin
 
e-ghost Revista ESIDE
e-ghost Revista ESIDEe-ghost Revista ESIDE
e-ghost Revista ESIDEAlvaro Marin
 

Más de Alvaro Marin (11)

Seguridad en sistemas_de_correo_electronico
Seguridad en sistemas_de_correo_electronicoSeguridad en sistemas_de_correo_electronico
Seguridad en sistemas_de_correo_electronico
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
OpenSSH
OpenSSHOpenSSH
OpenSSH
 
DeCSS
DeCSSDeCSS
DeCSS
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
SPF - Sender Policy Framework
SPF - Sender Policy FrameworkSPF - Sender Policy Framework
SPF - Sender Policy Framework
 
Resumen MAAWG 2004
Resumen MAAWG 2004Resumen MAAWG 2004
Resumen MAAWG 2004
 
Abuse Reporting Fromat
Abuse Reporting FromatAbuse Reporting Fromat
Abuse Reporting Fromat
 
Redes Bayesianas
Redes BayesianasRedes Bayesianas
Redes Bayesianas
 
e-ghost Revista ESIDE
e-ghost Revista ESIDEe-ghost Revista ESIDE
e-ghost Revista ESIDE
 

Último

Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORASMarc Liust
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptxdulcemonterroza
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxVICTORMANUELBEASAGUI
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendidaLuis Francisco Reyes Aceves
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 

Último (16)

Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 

Mysql

  • 1. MySQL http://www.splitcc.net/Documents/TutorialMySQL... MySQL Alvaro Marín Illera alvaro at rigel.deusto.es Instalación, configuración y manejo de MySQL Introducción Su principal objetivo de diseño fue la velocidad, por ello se suprimieron algunas características de los demás SGBDs (Sistema de Gestion de Base de Datos), como las transacciones y las subselects. Consume pocos recursos y se distribuye bajo licencia GPL (a partir de la versión 3.22). Ventajas: Mayor rendimiento Mejores utilidades de admon Integracón perfecta con PHP Sin límites en los tamaños de los registros Mejor control de acceso de usuarios El lenguaje SQL para acceder a bases de datos relacionales, fue lanzado al mercado por IBM al mercado allá por 1981, después de varios años de desarrollo y en 1983 empezó a vender DB2, un sistema de gestión de bases de datos que se hizo muy popular. Posteriormente, el Instituto de Estándares Nacional Americano(ANSI) adoptó el SQL como estándar para el acceso a bases de datos relacionales, y al añó siguiente, se convirtió en estándar ISO. Actualmente, se encuentra en fase de estandarización la versión 3, que será un lenguaje por sí mismo, y no necesitará de otros para actuar, nuevos tipos de datos complejos... Alrededor de la década del 90, Michael Windenis (monty@analytikerna.se) comenzó a usar mSQL (http://www.hughes.com.au/) para conectar tablas usando sus propias rutinas de bajo nivel (ISAM). Sin embargo, después de algunos testeos llego a la conclusión que mSQL no era lo suficientemente rápido ni flexible para sus necesidades. De todo esto surgió en una nueva interfaz SQL (claro que con código mas portable) con algunas apariencias similares en la API de C y en los nombres y funciones de muchos de sus programas. Esto había sido hecho para lograr con relativa facilidad portar aplicaciones y utilidades de MiniSQL a MySQL. Este tutorial va a tratar de introducir al lector en el amplio mundo de MySQL. Para un estudio más amplio, recomiendo la visita del completo tutorial que hay en su web www.mysql.com. Instalacion y configuración Para instalar MySQL, si estamos en Debian, basta con hacer lo siguiente: apt-get install mysql-server Se nos preguntan varios aspectos, como si queremos "purgar" o borrar las bases de datos, cuando desinstalemos el programa o si queremos que se ejecute cada vez que iniciemos la máquina. Una vez respondidas, ya tendremos el servidor instalado. El archivo de configuración, está situado en /etc/mysql/my.cfg . También en el home de cada usuario, se puede crear un .my.cnf para definir los parámetros de los clientes, de tal forma de que si un parámetro está definido en los dos, toma preferencia el último leido por MySQL, es decir, el del ~/.my.cnf, como veremos posteriormente. 1 de 7 10/11/09 17:40
  • 2. MySQL http://www.splitcc.net/Documents/TutorialMySQL... En /etc/mysql/my.cnf entonces, se indica dónde guardar los logs que se generan, puerto por el que escuchará las conexiones... Por defecto, el acceso por red, está deshabilitado por seguridad. Para habilitarlo, comentaremos la línea "skip-networking", con lo que al reiniciar el servicio tendremos MySQL a la escucha, en el puerto TCP 3306. En cuanto a los logs, se indican en el archivo de configuración anterior. Por defecto, en /var/mysql /mysql.log se guardan las consultas realizadas contra las bases de datos que "alberga" MySQL. Los errores y demás, en /var/log/mysql/mysql.err. Usando MySQL Junto con el servidor de base de datos, MySQL nos proporciona otras herramientas, como el cliente mysql que utilizaremos para conectarnos al servidor a partir de ahora. Ejecutando $mysql -h vemos todas las opciones de este programa, entre las más importantes -h => host donde está el servidor (por defecto localhost) -u => usuario -p => password -P => puerto Para conectarnos en un principio, basta con ejecutar en la shell: $mysql -u root -p Por defecto deja al usuario root SIN contraseña, lo cambiaremos luego. Entramos en MySQL entonces: $mysql -u root -p Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 to server version: 3.23.49-log Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> MySQL tiene "auto completado" de comandos, como el bash. Así que podemos dar al [Tab] para ver todas los posibles comandos a ejecutar. Para empezar vamos a ver qué bases de datos tenemos ya creadas por defecto: mysql>show databases; La BD mysql es la principal del servidor. Para poder usarla y hacer consultas sobre ella, debemos indicar a MySQL que queremos trabajar con dicha BD: mysql>use mysql; Database changed A partir de ahora, todas las sentencias SQL que hagamos van a ser sobre las tablas de esta base de datos. Si en un momento dado, queremos ver con cuál estamos trabajando, lo podemos hacer con: mysql> select database(); +------------+ | database() | +------------+ | mysql | +------------+ 1 row in set (0.00 sec) 2 de 7 10/11/09 17:40
  • 3. MySQL http://www.splitcc.net/Documents/TutorialMySQL... También podemos hacerlo para recordar el usuario con el que estabamos: mysql>select user(); Para ver las tablas de las que está formada, lo hacemos con: mysql>show tables; +-----------------+ | Tables_in_mysql | +-----------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +-----------------+ 6 rows in set (0.00 sec) La tabla tables_priv, correponde a los permisos de los usuarios a nivel de tablas, es decir, en qué tablas puede hacer consultas cada usuario. La tabla columns_priv, corresponde con los permisos a nivel de columna Nos interesan las tablas de db y user. En la primera, se encuentran los permisos que tienen cada usuario en una determinada BD y el user están los usuarios del sistema. mysql>SELECT * FROM user; muestra todos los usuarios de MySQL, el host desde el que está permitido que se conecte, la contraseña y si tiene o no privilegios para hacer selects, inserts... sobre esta tabla y apagar/reiniciar...el servidor. Vamos a añadir un usuario nuevo: mysql>insert into user (Host,User,Password) values("localhost","ghost",password('ghost')); En la tabla db, tenemos los permisos que tiene cada usuario para una determinada base de datos, si puede hacer selects, inserts... deberíamos hacer una nueva insert en esta tabla... todo esto puede ser bastante "pesado" por lo que se creó una herramienta para manejar más fácilmente todo esto, el comando GRANT. Vamos a repetir lo anterior pero con este nuevo comando. Antes borramos el usuario creado con: mysql>DELETE FROM user WHERE User="ghost" and Host="localhost"; y lo creamos usando GRANT: GRANT privileges(columns) ON what TO user IDENTIFIED BY "password" [WITH GRANT OPTION]; Con esto, se crea una nueva entrada en la tabla mysql.user y mysql.db. La contraseña es cifrada con la función vista antes (password()). Vamos a crear una BD llamada BD y le damos permisos al nuevo usuario en ella: mysql>create database BDghost; mysql>GRANT ALL ON BDghost.* TO ghost@localhost IDENTIFIED BY "ghost"; Donde los privilegios pueden ser ALTER,CREATE,DELETE,DROP...ALL,USAGE(se crea el user pero sin privilegios). La opcion WITH GRANT OPTION, permite que el usuario de permisos a otros. El user, puede ser de la forma user@hostname. Si no se especifica la máquina desde la que el usuario se conectará, se le permitirá desde cualquier sitio, por lo que aparecerá un '%' en la columna Host de la tabla. Vemos el usuario creado con; mysql>select * from user; y sus privilegios en la base de datos que crearemos: 3 de 7 10/11/09 17:40
  • 4. MySQL http://www.splitcc.net/Documents/TutorialMySQL... mysql>select * from db; Para eliminar privilegios, tenemos REVOKE: mysql>REVOKE privileges(columns) ON what FROM user; Por ejemplo, si queremos negar al usuario 'ghost' la posibilidad de borrar las tablas de la base de datos, lo haríamos de la siguiente forma: mysql> REVOKE DROP ON BDghost.* FROM ghost@localhost; Pero esto no elimina los usuarios completamente del sistema, solo le quita los privilegios. Para eliminarlo completamente deberemos ir a la tabla user de la base de datos mysql y borrarlo "a mano" con un sentencia delete, como hemos visto antes. Como hemos dicho, en un principio, MySQL deja la cuenta root sin contraseña, por lo que habrá que cambiarlo inmediatamente, para ello: Diferentes formas: mysql> SET PASSWORD FOR root@localhost=password('nuevapass'); o cambiando directamente en la tabla user: $mysql -u root mysql -p mysql> UPDATE user SET Password=password('nuevapass') WHERE user='root'; mysql> FLUSH PRIVILEGES; Salimos con exit; Ahora vamos a conectarnos con el usuario que acabamos de crear, para ello lo podemos hacer con $mysql -u ghost -p (habría que poner -h hostname si estamos en otra máquina) pero resulta muy util crearse un .my.cnf (nótese el '.' para ocultar el archivo) en nuestro home, con las siguientes opciones: [client] host=localhost user=ghost password=ghost Lógicamente, este archivo deberá tener solamente permisos de lectura para el usuario para ello, hacemos: $chmod 600 .my.cnf En el caso de que accederíamos todo el rato a una base de datos, podríamos poner tambien: database=BDghost De esta forma, para conectarnos a mysql, ahora nos basta con poner mysql sin parámetro alguno desde la shell y se nos conectara con los parámetros dados en .my.cnf Creando una Base de Datos en MySQL Vamos a crear una base de datos ejemplo. Primeramente, creamos elarchivo .sql con todas las sentencias SQL para crear las tablas. Para ello, con nuestro editor favorito, editamos el fichero : CREATE TABLE Usuario ( id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, nick varchar(40) NOT NULL, email varchar(60), web varchar(100) ); 4 de 7 10/11/09 17:40
  • 5. MySQL http://www.splitcc.net/Documents/TutorialMySQL... CREATE TABLE Mensaje ( id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, autor int(5) NOT NULL, fecha date, texto blob, padre int(5), tema int(8), FOREIGN KEY (autor) REFERENCES Usuario(id), FOREIGN KEY (tema) REFERENCES Tema(id) ); CREATE TABLE Tema ( id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, nombre varchar(20) NOT NULL, descripcion varchar(60) ); Una vez creado el archivo, se lo pasamos a MySQL: $mysql -u ghost -p BDghost < foros.sql o si tenemos el .my.cnf anterior creado : mysql < foros.sql de tal forma, que lo copiará con la base de datos, usuario y pass del archivo .my.cnf. MySQL acepta un montón de tipos de datos como int(tinyint,smallint,mediumint,bigint),float,double,char,varchar,blob,mediumblob,date,time... Destacar también el atributo AUTO_INCREMENT, de id por ejemplo. Con esto indicamos, que cada vez que se inserte una fila en la tabla, MySQL asignará un nº al id, que será el posterior al anterioriormente asignado. De esta forma, tenemos secuencias enteras de ids sin necesitar de "llevar la cuenta" ni nada por el estilo. Al hacer la insert, será con el valor NULL y MySQL se encarga automáticamente de generarlo. También se puede introducir un valor para saltarse el autoincrement, pero dará error si ya existe. Se puede definir un valor de inicio para el AUTO_INCREMENT, para que empieze a contar desde un valor. Esto se hace asgnadole dicho valor al crear la tabla. Podemos ver las tablas que acabamos de crear, reconectándonos al servidor y poniendo: mysql> show tables; +-------------------+ | Tables_in_BDghost | +-------------------+ | Mensaje | | Tema | | Usuario | +-------------------+ 3 rows in set (0.00 sec) Para ver la descripción de cada tabla (columnas, tipos...), tenemos el comando desc o describe. Por ejemplo: mysql> describe Usuario; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(8) | | PRI | NULL | auto_increment | | nick | varchar(40) | | | | | | email | varchar(60) | YES | | NULL | | | web | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 5 de 7 10/11/09 17:40
  • 6. MySQL http://www.splitcc.net/Documents/TutorialMySQL... 4 rows in set (0.00 sec) mysql> desc Mensaje; +-------+--------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+----------------+ | id | int(8) | | PRI | NULL | auto_increment | | autor | int(5) | | | 0 | | | fecha | date | YES | | NULL | | | texto | blob | YES | | NULL | | | padre | int(5) | YES | | NULL | | | tema | int(8) | YES | | NULL | | +-------+--------+------+-----+---------+----------------+ 6 rows in set (0.00 sec) Explicado esto, podemos hacer las correspondientes inserts a las tablas, por ejemplo: mysql>insert into Usuario values(NULL,"split","split77@terra.es","http://split.no-ip.org"); mysql>insert into Tema values(NULL,"GNU/Linux","Tema sobre GNU/Linux"); mysql>insert into Mensaje values(NULL,1,now(),"Primer mensaje",NULL,1); mysql>insert into Usuario values(NULL,"cicatriz","cicatriz@enlamatriz.org",""); mysql>insert into Mensaje values(NULL,1,now(),"Segundo Mensaje",NULL,1); Para hacer una consulta sencilla de todos los mensajes que ha escrito split, hacemos: mysql> select Mensaje.texto from Mensaje,Usuario where Usuario.id=Mensaje.autor and Usuario.nick="split"; +-----------------+ | texto | +-----------------+ | Primer mensaje | | Segundo Mensaje | +-----------------+ 2 rows in set (0.01 sec) Backups Con este otro programa integrado en el "paquete" de MySQL, podemos hacer copias de seguridad fácilmente ya que nos vuelca todo el contenido de la(s) base de datos en archivos de texto, para poder posteriormente restaurarlos. Desde la shell podemos hacer $mysqldump -u ghost -p BDghost > backup.sql Si tenemos el .my.cnf dará un error de --databases. Para solucionarlo, renombramos temporalmente el archivo $mv .my.cnf .my.cnf.OLD y ya podemos hacer el backup tranquilamente. Pero este comando tiene bastantes opciones como: --all-databases => vuelca todas las bases de datos que tiene MySQL (hacen falta permisos en todas ellas, claro) --add-drop-table => añade una sentencia al principio del archivo de backup para que si se tiene que restaurar borre la tabla existente. --add-locks => añade las sentencias de bloqueo y desbloqueo para hacer las inserts Para poder restaurar la base de datos, hacemos: $mysql -u ghost -p BDghost < backup.sql o como hemos dicho, si tenemos el .my.cnf con los datos apropiados: 6 de 7 10/11/09 17:40
  • 7. MySQL http://www.splitcc.net/Documents/TutorialMySQL... $mysql < backup.sql Otros Con el fin de hacer el manejo de MySQL un poco más "amigable", hay programas como el PHPMyAdmin, que es un front-end vía web para el acceso a las bases de datos y sus tablas. Lo podemos instalar como siempre: apt-get intall phpmyadmin Depende del servidor web Apache por lo que nos pedirá instalarlo también. Para acceder, una vez arrancado el Apache, basta con poner en el navegador http://localhost /phpmyadmin y se nos pedirá un nombre de usuario y una contraseña para el acceso a las bases de datos, como hemos tenido que poner en nuestro .my.cnf por ejemplo. Una vez que se nos permita el acceso, tenemos la posibildad de consultar las tablas, insertar filas, modificarlas... y un montón de opciones vía web y muy comodamente. Sin duda, herramienta recomendable para el manejo de grandes bases de datos. Alvaro Marin, 2004. Algunos derechos reservados. http://creativecommons.org/licenses/by-nc-sa/2.0/ 7 de 7 10/11/09 17:40