rutas mysql.doc

14
12Cuando se instala MySQL por defecto instala MySQL en: C:\Program Files\MySQL\MySQLServer X.Y C:\Archivos de Programa\MySQL\MySQL Server 5.1 C:\Archivos de Programa\MySQL\MySQL Server 5.1\data C:\ ProgramData\MySQL\MySQL Server 5.1\data en MV Si se encuentran ocultas: Modo comando: DIR /A:H Windows: Panel control/Apariencia y personalizacion/Opciones de carpeta/Ver → archivos de carpeta ocultos. Mostrar. En la carpeta bin se encuentran muchas aplicaciones. Bin-> Programas cliente y servidor MySQL. Data-> Ficheros de registro y base de datos. Arrancar el servidor: a) El servidor se arrancará automáticamente cuando se inicia Windows, porque así se lo indicamos durante la instalación, que se iniciará como servicio de Windows. b) Con la orden NET START MYSQL (cmd ejecutar como administrador) NET STOP MYSQL(Detener servidor) c) Con la utilidad Services o Servicios d) Podemos arrancar el servidor MySQL manualmente: C:\ >C:\Program Files\MySQL\MYSQLSERVER5.0\mysqld -u root --console Cuando arranca el servidor automáticamente, el fichero my.ini(C:\ Program Files\MySQL\MySQL Server 5.1) indica unos valores por defecto de variables. Abrir ficheros mediante cmd → edit nombre de finchero.extensión cambiar el tamaño de fichero → mysqld -u root –sort_buffer_size=nº emtrar en mysql: mysql -u root -proot o mysql -u root -p 1º Arrancar el servidor cliente → ¿Valor de –sort_buffer_size?

Transcript of rutas mysql.doc

Page 1: rutas mysql.doc

12Cuando se instala MySQL por defecto instala MySQL en:

C:\Program Files\MySQL\MySQLServer X.Y

C:\Archivos de Programa\MySQL\MySQL Server 5.1

C:\Archivos de Programa\MySQL\MySQL Server 5.1\data

C:\ProgramData\MySQL\MySQL Server 5.1\data en MV

Si se encuentran ocultas:

Modo comando: DIR /A:H

Windows: Panel control/Apariencia y personalizacion/Opciones de carpeta/Ver → archivos de carpeta ocultos. Mostrar.

En la carpeta bin se encuentran muchas aplicaciones.Bin-> Programas cliente y servidor MySQL.Data-> Ficheros de registro y base de datos.

Arrancar el servidor: a) El servidor se arrancará automáticamente cuando se inicia Windows, porque así se lo indicamos durante la instalación, que se iniciará como servicio de Windows.

b) Con la orden NET START MYSQL (cmd ejecutar como administrador) NET STOP MYSQL(Detener servidor)

c) Con la utilidad Services o Servicios

d) Podemos arrancar el servidor MySQL manualmente: C:\>C:\Program Files\MySQL\MYSQLSERVER5.0\mysqld -u root --console

Cuando arranca el servidor automáticamente, el fichero my.ini(C:\Program Files\MySQL\MySQL Server 5.1) indica unos valores por defecto de variables.

Abrir ficheros mediante cmd → edit nombre de finchero.extensióncambiar el tamaño de fichero → mysqld -u root –sort_buffer_size=nºemtrar en mysql: mysql -u root -proot o mysql -u root -p

1º Arrancar el servidor cliente → ¿Valor de –sort_buffer_size?show variables like 'sort_buffer_size';2º Parar el servidormysqladmin -u root -proot shutdown → fuera de mysql.3º Arrancar con mysql con otro valor para –sort_buffer_sizemysqld -u root --sort_buffer_size=400000 y luego entramos en mysql4ºArrancar clente → ¿Valor de variable?show variables like 'sort_buffer_size';

Page 2: rutas mysql.doc

El servicio se puede detener:a) Automáticamente al cerrar windowsb) Manualmente con NET STOP MYSQLc) Manualmente con mysqladmin → SHUTDOWN :

C:\ProgramFiles\MySQL\MySQL Server 5.1\bin> mysqladmin -u root -p shutdownd) Con la utilidad Servicios.

Ver el estado del servidor:(comprobar que el servidor está arrancando y en funcionamiento)

a) mysqladmin -u root -p ping

*si está subido: mysql is alive

*si está bajado: Avisa de error.

b) mysqladmin -u root -p versión → versión mysqladmin -u root -p status → estado mysqladmin -u root -p proc → estado y procesoso todo junto. mysqladmin -u root -p versión status proc.

c) mysqlshow -u root -proot → muestra las BD sin entrar en mysqld) mysql -u root -proot -e “show databases” → muestra las BD sin entrar en mysql

*Si queremos ver todas las opciones del servidor(mysqld) y los valores de sus variables: mysqld --verbose –help (desde cmd)

Conectarnos con el cliente modo consola al servidor:

Los programas cliente de mysql esperan, por lo general, que se especifiquen los parámetros de conexión cuando quiere acceder a un servidor mysql:

-El nombre de la maquina donde esta ejecutándose el servidor mysql.-Nombre de usuario.-Password.

Sintaxis:

mysql -h localhost -u nombre_usuario -psu_clave

Desde fuera de mysql

Page 3: rutas mysql.doc

Otros clientes mysql se comportan de manera similar.

Puede especificar valores diferentes para que se utilicen cuando se realiza una conexión de manera que no tengo que introducirlos en la linea de comandos cada vez que invoca un programa cliente. Se indican los parámetros de conexión en la sección [client] de un archivo de opciones (my.ini). La sección relevante del archivo debería tener el siguiente aspecto:

[client]

host=nombre_servidor

user=nombre_usuario

password=su_clave

Observar el contenido del directorio bin-> C:\Program Files\MySQL\MySQLServer 5.1\bin

En él tenemos distintas herramientas:

*mysql-> es el cliente, nos permite conectarnos al servidor con el usuario y contraseña: MySQL -u root -proot

*mysqladmin-> para realizar tareas de mantenimiento de nuestras B.D.(apartado)

*mysqlshow-> para ver rápidamente B.D., tablas, columnas e indices (=show dentro del cliente mysql)

*mysqldump-> es un cliente para realizar volcados de B.D. para copias de seguridad.

*mysqlbinlog-> para examinar los ficheros binarios que el servidor genera cuando se ejecutan sentecias que producen actualizaciones sobre las BDs.(estos ficheros estan en formate binario y esta utilidad nos permite examinarlos en formato texto).

Observar el contenido del directorio data → C:\ProgramData\MySQL\MySQLServer 5.1\data

En él encontramos:

*Una carpeta para B.D.: (Se crea automáticamente al crear la B.D. por defecto se han creado mysql y test). Dentro de estas guardará:

-Para tablas MyISAM: Para cada tabla almacena 3 ficheros con el nombre de la tabla y extensión:

.frm-> formato .myd->datos de las tablas .myi->indices

Page 4: rutas mysql.doc

Pata tablas InnoDB: para cada tabla almacena un fichero con el nombre de la tabla y extension .frm->formato

Miremos el directorio que existe en data para es BD prueba

creamos la BD prueba y la tabla tabla_prueba(numero int); :

Además varios ficheros con nombre “ibdata1”[“ibdata2”,...], que compartirá con todas las BD del servidor en el directorio DATA.

Los ficheros “ib_logfile0” “ib_logfile1”... ficheros logs de BD tipo InnoDB

*Nombrehost.err → Fichero Log Error. En nuestro caso Lola-PC.err

*Nombrehost.pid → Contiene ID del proceso del servidor. En nuestro caso Lola-PC.pid

*Los ficheros Log que tengamos establecidos en my.ini para guardar datos.

Mysqladmin

Es una utilidad para realizar tareas de mantenimiento de nuestras BD, que viene incluida en la distribución de mysql.

Sintaxis:mysqladmin[OPCIONES] comando[opciones de comando] comando2...

Para obtener una lista de las opciones disponibles:

mysqladmin -u root -p –helpómysqladmin -u root -p

Page 5: rutas mysql.doc

Lista de las opciones más corrientes. Primero vemos su denominación abreviada, y separado con una barra vertical | su nombre completo:

-p|..password[=pwd]-> La contraseña para conectar con el server. Si usamos -p sin proporcionar la contraseña, MySQL nos la preguntará antes de ejecutar el comando.

-u|--user[=nombre de usuario]-> El nombre de usuario. Es necesario especificarlo si no hemos hecho aun log en el server.

-h|--host=hostname-> Conecta al servidor. Si no lo especificamos intentará localhost.

-P|--port=pnum-> Especifica el puerto por el que se conectará al server. Si no se especifica usará el puerto por defecto.

-f|--force-> Mediante esta opción podemos hacer un drop en una base de datos sin que pida confirmación. Si usamos esta opcion es una orden que incluya varios comandos, obligamos a la ejecución de todos ellos incluso aunque haya algún error.

-?|--help-> Muestra la ayuda y sale de la ejecución.

-s|--silent-> Cierra la ejecución si no puede conectar con el servidor.

-v|--verbose-> Espefica que el server debe contestar con toda la información disponible a cada comando que ejecutemos.

-V|--version-> Muestra la version y sale.

-w|--wait[=num de intentos]-> Reintenta la conexión si el server está caído.

Podemos usar con mysqladmin los siguientes comandos:

create nombre_base_datos-> Crea una nueva base de datos. EJ: mysqladmin -u root -proot create prueba1;

Drop nombre_BD-> Elimina la base de datos y sus tablas. Ej:mysqladmin -u root -proot drop prueba1; y nos pide confirmaciónmysqladmin -u root -proot -f drop prueba1; → sin confirmación.

Status-> Proporciona un mensaje con el status del server.

mysqladmin -u root -proot status prueba1;

extended-status → mensaje con información xtendida

Version → version de servidor

flush-hosts → vacia los servidores almacenados en cache

flush-logs → vacia los archivos del registro

flush-tables → vacia todas las tablas

Page 6: rutas mysql.doc

flush-privileges → recarga las tablas con los permisos de usuario(igual que reload)

kill “nº id”.... → elimina los subprocesos especificos

password → especifica una nueva contraseña

ping → comprueba si mysql se esta ejecutando

processlist → muestra los subprocesos abiertos en el server

reload → recarga los permisos de usuario

refresh → vacia las tablas de permisos, cierra y abre los archivos de registro.

Shutdown → apaga el server.

Variables → muestra las variables disponibles.

Ejemplo: para crear una base de datos llamada db test

mysqladmin -u root -p create db test

enterpassword:*******

Variables y opciones en MySQL

El servidor dispone de un conjunto de variables que determinan su funcionamiento. Cuando lo instalamos cogen su valor por defecto. Se pueden cambiar de 3 formas:

A. Cuando arrancamos el servidor(MySQL/mysqld) o cualquier otro parámetro con opciones de línea de comando podemos incluir valores en las variables directamente en la línea de comandos. La mayoría admite la forma larga precedida de dos guiones o con un guión. Algunas de ellas implican cierto valor, por lo tanto irán seguidas por el signo “=” y el valor correspondiente para el caso largo –nombrevariable=”valor” o directamente por el valor sin espacio en blanco (p.e. -uroot)

Ejemplos:

Mysql -u root –password=root -e “show databases” → nos conectamos con el cliente y el usuario root y ejecutamos el comando show databases con la opción -e(execute)

Mysqld -u root -proot –key_buffer_size=16M → arranca el servidor con un tamaño de memoria usado para los bloques de indices de 16 megas.

B. Usando un fichero de opciones(será la opción más usada) lo utilizamos cuando queremos que las opciones sean permanentes. Podemos hacer que los programas MySQL puedan leer opciones de inicio desde ficheros de opciones, también llamados ficheros de configuración. Existen muchos programas que soportan ficheros de opciones(mysql, msqlcheck...). Podemos unificar las opciones para todos ellos en un solo fichero llamado my.ini(en linux my.cnf) este fichero se encuentra en:C:\program file\mysql\mysql server 5.1

Page 7: rutas mysql.doc

Este fichero nos permite los siguientes elementos:

-Comentarios precedidos por #-Opciones para programas o grupos usando [ ]-Opciones tipo opción=valor → key_buffer_size=16M-Opciones sin valor asociado.

C. Modificándolas con el comando set, sólo podemos modificar variables dinámicas (son variables en tiempo de ejecución, frente a las estáticas que no lo son).SET inicializa distintos tipos de variables que afecta al servidor y a clientes. Se puede usar para asignar valores a variables de usuario o de sistema(mas abajo).

Sintaxis general:SET asignación_variable [, asignación_variable...]

**asignación_variable equivale a:A. @ nombre_var=expresiónB. [GLOBAL|SESSION] nombre_var_sistema=expC. [@@global.|@@session.|@@] nombre_var_sistema=exp

EJ: SET @nombre='Lola';

Tipos de variable:

Variables de usuario se escribe como @nombre_variable

Para modificar su valor:

SET @nombre_variable=exp;

Exp puede ser un número entero, un número real, una cadena o un null.

Para ver su valor con SELECT:

SELECT @nombre_variable;

Ejemplos:

SET @hoy=current_date();Select @hoy;Select @fecha_min:=MIN(fecha) from gente; → Cuando la var toma el valor de otra sentencia, no usa SET.

Page 8: rutas mysql.doc
Page 9: rutas mysql.doc

Se utiliza := cuando reciben el valor en otras sentencias.

Las variables de usuario almacenan valores para ser usados más tarde → posibilita pasar valores de una sentencia a otra. SELECT *FROM gente WHERE fecha=@fecha_min;

Son especificas de la conexión, con lo que otros usuarios no la ven. Son liberadas cuando el cliente abandona la conexión.

Variables del sistema pueden ser de dos tipos:

-Globales: Afectan a la operación general del servidor. Cuando éste arranca toma sus valores predeterminados, estos se pueden cambiar con los ficheros de opciones, por la linea de comando o con SET. Para cambiarlas con SET:

SET GLOBAL nombre_var=exp;óSET @@global.nombre_var=valor;

para cambiarlo hay que tener privilegio super.

Una variable sirve para guardar información para tenerla ahí cuando yo la necesite.

-Locales o de sesión: actúan sobre el cliente que se conecta. Se inicializa con el valor correspondiente de la variable GLOBAL. No requiere privilegios especiales para cambiarlas, pero un cliente sólo puede modificar las suyas.

SET SESSION nombre_var=exp;óSET @@session.nombre_var=valor;

OJO: Cuando se hace un cambio en una variable global afectará solamente a las correspondientes variables de sesión de las conexiones posteriores al cambio. No afectará a las variables de sesión de los clientes actualmente conectados, ni siquiera del cliente que emitió la sentencia SET GLOBAL.

Ejemplos: variable sort_buffer_size → tamaño del buffer que creará cada vez que tenga que ordenar.

-Cambio de la variable global:

SET GLOBAL sort_buffer_size=valor;SET @@global.sort_buffer_size=valor;

-Cambio de la variable local o de sesión:

SET SESSION sort_buffer_size=valor;SET @@session.sort_buffer_size=valor;SET sort_buffer_size=valor; → Si no se especifica nada se entiende que es de session.

Page 10: rutas mysql.doc

OJO: para cambiar variables del sistema no se pueden usar sufijos con SET:

SET sort_buffer_size=10MB → NO

Se pondría:

SET sort_buffer_size=10*1024*1024 o bien 100000 → SI

Para ver el valor de las vairables globales o de sesión tenemos dos posibilidades, con SHOW o con SELECT.

-Mostrar globales:

SHOW GLOBAL VARIABLES [like 'patron'];SELECT @@global.nombre_var;

Ejemplos:

SHOW GLOBAL VARIABLES like 'sort_buffer_size'; SELECT @@global.sort_buffer_size;

Mostrar locales o de sesión:

SHOW SESSION VARIABLES [like 'patron'];SELECT @@session.nombre_var;

Las variables que se pueden cambiar en tiempo de ejecución se llaman VARIABLES DE SISTEMA DINÁMICAS . Pueden ser globales o de sesión.

Ejemplos:

autocommit es sesión y tipo Booleano(puede tomar valor verdadero o falso) key_buffer_size es global y de tipo numérica. Time_zone es global|sesión y tipo cadena,...

**Se pueden consultar sus valores igual que el resto de variables:

Show [GLOBAL|SESSION] variables [like 'patron'];Select @@global|session.nombre_var;

Existen variables que indican el estado del servidor, son llamadas VARIABLES DEL ESTADO DEL SERVIDOR, que provén información sobre su estado y sus operaciones. No se puede modificar ni incluir en el fichero de opciones. Algunas de las variables de estado se inicializan a cero con flush status;

Para verlas todas:

Page 11: rutas mysql.doc

SHOW STATUS;

Para ver una o varios siguiendo un patrón:

SHOW STATUS like 'patron';

Ejemplos:

SHOW STATUS LIKE 'th%'; → variables que comienzan por thSHOW STATUS LIKE 'threads_created'; → Número de conexiones existentes en el servidor.

**También podemos ver las variables del servidor desde la consola MS-DOS:

mysql-debug -u root --verbose --help

**Si queremos redirigir el resultado a un fichero:

mysqld -u root --verbose --help>C:\users\usuario\nombre_fichero

**Para verlas desde dentro de MySQL:SHOW VARIABLES;

Estructura del Diccionario de Datos.

El diccionario de datos es el componente esencial en cualquier SGBD ya que contiene información (metadatos) sobre los objetos de BD alojados en el servidor. Metadatos son datos acerca de los datos tales como el nombre de la BD o de las tablas, tipo de datos de una columna, permisos de acceso, etc. Otros términos que a veces se usan para esta información son Diccionario de datos o Catálogo del sistema.