+ All Categories
Home > Engineering > MANUAL DE INSTALACION Y USO DE MYSQL

MANUAL DE INSTALACION Y USO DE MYSQL

Date post: 13-Apr-2017
Category:
Upload: wilianramosperez
View: 158 times
Download: 6 times
Share this document with a friend
32
Transcript
Page 1: MANUAL DE INSTALACION Y USO DE MYSQL
Page 2: MANUAL DE INSTALACION Y USO DE MYSQL

Requisitos de Windows

Para ejecutar MySQL para Windows, se necesita lo siguiente:

• Un sistema operativo Windows de 32 bits, tal como 9x, Me, NT, 2000, XP, o

Windows Server 2003.

Se recomienda fuertemente el uso de un sistema operativo Windows basado en

NT (NT, 2000,XP, 2003) puesto que éstos permiten ejecutar el servidor MySQL

como un servicio.

• Soporte para protocolo TCP/IP.

• Una copia de la distribución binara de MySQL para Windows, que se puede

descargar

Nota: Si se descarga la distribución a través de FTP, se recomienda el uso de un

cliente FTP adecuado

que posea la característica de reanudación (resume) para evitar la corrupción de

ficheros durante el proceso de descarga.

• Una herramienta capaz de leer ficheros .zip, para descomprimir el fichero de

distribución.

• Suficiente espacio en disco rígido para descomprimir, instalar, y crear las bases

de datos de acuerdo a sus requisitos. Generalmente se recomienda un mínimo de

200 megabytes.

También podrían necesitarse los siguientes ítems opcionales:

Elección de un paquete de instalación 58

• Si se planea conectarse al servidor MySQL a través de ODBC, se deberá contar

con un driver

Connector/ODBC. Consulte en internet “MySQL Connector/ODBC”.

Page 3: MANUAL DE INSTALACION Y USO DE MYSQL

• Si se necesitan tablas con un tamaño superior a 4GB, debe instalarse MySQL en

un sistema de ficheros NTFS o posterior

INSTALACION DE MYSQL:

Nos dirijimos al navegador de intenet buscamos “mysql” Buscamos la pestaña ”descargas,” seleccionamos el sistema

operativo que estemos usansdo Sleciconamos la pestaña mysql installer y le damos clic en la

segunda opción Seleccionan la opción no thanks, just start my dowload Si iniciara la descarga.

Page 4: MANUAL DE INSTALACION Y USO DE MYSQL

Una vez descargada la aplicación lo ejecutamos como administrador

Esperamos a que cargue el inicio de la instalación

Page 5: MANUAL DE INSTALACION Y USO DE MYSQL

Aceptamos los acuerdos de licencia

Pulsamos el botón next .

Pulsamos el botón de execute, para verificar la conexión a internet, al termino pulsamos next

Page 6: MANUAL DE INSTALACION Y USO DE MYSQL

En esta ventana nos aparece una breve explicación de la ruta de instalación y los componentes a instalar.

Solo pulsamos next.

En esta ventana pulsamos execute para descragar el ultimo complemento y esperamos a que termine de descargar

Al termino pulsamos next

Page 7: MANUAL DE INSTALACION Y USO DE MYSQL

En esta ventana nos muestra las aplicaciones a instalar esto se tardara un poco debido a que tiene que descargar las aplicaciones.

Pulsamos execute para apemzar a descargar

Terminando de descargar las aplicaciones pulsamos next para proseguí la instalacion

Page 8: MANUAL DE INSTALACION Y USO DE MYSQL

En esta ventana pulsamos next para abrir las cnfiguraciones.

En la primera parte de la configuración la dejamos tal y como esta, el puerto lo dejamos como esta ese será por el que se conectara

Pulsamos next

Page 9: MANUAL DE INSTALACION Y USO DE MYSQL

En la segunda ventana de configuración le asignamos una contraseña de usuario, las que ustedes prefieran.

Pulsamos next

Las tercera ventana solo pulsamos next, no muestra algunos detalles del servicio en Windows.

Esperamos a que termine de configurar.

Page 10: MANUAL DE INSTALACION Y USO DE MYSQL

Arrancar MySQL desde la línea de comandos de Windows

El servidor MySQL puede ser iniciado manualmente desde la línea de comandos.

Esto es válido en cualquier versión de Windows.

Esta e la ultima ventana de instalación Deseleccionamos la opción de start y pulsamos finish.

Esta es la primera ventana de inicio, donde introducimos la contraseña que le asignamos en la configuración y pulsamos intro para empezar a trabajar.

Page 11: MANUAL DE INSTALACION Y USO DE MYSQL

Para iniciar el servidor mysqld desde la línea de comandos, se debería abrir una

ventana de consola (o “ventana DOS ”) e ingresar este comando:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld

La ruta empleada en el ejemplo anterior puede variar según la ubicación de la

instalación de MySQL en el sistema.

En versiones no NT de Windows, esto ejecutará mysqld en segundo plano. Esto

significa que luego de que el servidor se inicia, puede verse otra ventana de

comandos. Si se inicia el servidor de esta manera

pero en Windows NT, 2000, XP o 2003, el mismo se ejecuta en segundo plano sin

que aparezca ningún indicador del sistema hasta que el servidor finaliza. Debido a

esto, se deberá abrir otra ventana de consola para correr programas cliente

mientras el servidor se ejecuta.

El siguiente comando detendrá al servidor MySQL:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown

Esto invoca la utilidad administrativa de MySQL, mysqladmin, para conectarse al

servidor y transmitirle la orden de finalización. El comando se conecta como el

usuario root de MySQL, el cual es la cuenta administrativa por defecto en el

sistema de permisos de MySQL. Debe advertirse que los usuarios en

este sistema son enteramente independientes de cualquier usuario de inicio de

sesión perteneciente a Windows.

Si mysqld no se inicia, debe verificarse el registro de errores para ver si el servidor

generó cualquier mensaje que indique la causa del problema. El registro de

errores se localiza en el directorio C:\Program Files\MySQL\MySQL Server 5.0\

data. Es el fichero con extensión .err. También puede intentarse iniciar el servidor

con el comando mysqld --console; en este caso se podrá obtener alguna

información en pantalla que permita resol er el problema.

La última opción es ejecutar mysqld con --standalone --debug. En este caso,

mysqld guardará un fichero de registro llamado C:\mysqld.trace el cual debería

contener la razón por la cual mysqld no se inicia. Consulte Sección D.1.2, “Crear

ficheros de traza”.

Page 12: MANUAL DE INSTALACION Y USO DE MYSQL

El comando mysqld --verbose --help sirve para mostrar todas las opciones que

mysqld es capaz

de comprender.

Estándares utilizados por MySQL

Estamos intentando soportar en estándar ANSI/ISO completamente, pero sin

hacer concesiones a la velocidad y calidad del código.

Niveles ODBC 0-3.51.

Selección de modos SQLMySQL Server puede operar en distintos modos SQL y puede aplicar dichos

modos de forma diferente para distintos clientes. Esto permite a una aplicación

adaptar el funcionamiento del servidor a sus propios requerimientos.

Los modos definen la sintaxis que MySQL debe soportar y qué clase de

validaciones debe efectuar a los datos. Esto hace más fácil usar MySQL en un

conjunto de entornos diferentes y usar MySQL junto con otros servidores de bases

de datos.

Puede inicializar el modo SQL por defecto inicializando mysqld con la opición --sql-

mode="modes".

Empezando en MySQL 4.1., se puede cambiar el modo tras inicializar mediante la

variable sql_mode con un comando SET [SESSION|GLOBAL] sql_mode='modes'.

Ejecutar MySQL en modo ANSI 23

Para más información acerca de especificar el modo del servidor.

Ejecutar MySQL en modo ANSI

Page 13: MANUAL DE INSTALACION Y USO DE MYSQL

Puede decirle a mysqld que use el modo ANSI con la opción --ansi al

arrancarEjecutar el servidor en modo ANSI es lo mismo que inicializarlo con las

siguientes opciones (especifique el valor de --sql_mode en una única línea):

--transaction-isolation=SERIALIZABLE --sql-

mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,

IGNORE_SPACE En MySQL 4.1, puede conseguir el mismo efecto con los

siguientes 2 comandos (especifique el valor de sql_mode en una única línea):

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;

SET GLOBAL sql_mode =

'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,

IGNORE_SPACE';”.

En MySQL 4.1.1, la opción sql_mode puede inicializarse con el siguiente

comando:

SET GLOBAL sql_mode='ansi';

En ese caso, el valor de la variable sql_mode se especifica para todas las

opciones que son relevantes en el modo ANSI. Puede comprobar el resultado de

la siguiente manera:

mysql> SET GLOBAL sql_mode='ansi';

mysql> SELECT @@global.sql_mode;

-> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,

IGNORE_SPACE,ANSI';

Errores comunes al usar programas MySQLEsta sección enumera algunos errores que los usuarios encuentran de manera

frecuente cuando ejecutan programas MySQL. Aunque los problemas se muestran

cuando intenta ejecutar programas cliente, las soluciones a muchos de los

problems pasan por cambios en la configuración del servidor MySQL.

Access denied

Page 14: MANUAL DE INSTALACION Y USO DE MYSQL

Un error de Acceso denegado puede tener muchas causas. Frecuentemente el

problema está

relacionado con las cuentas MySQL a las que el servidor deja que se conecten los

programas cliente.

Can't connect to [local] MySQL serverUn cliente MySQL en Unix puede conectarse al servidor mysqld de dos maneras

diferentes: Utilizando un archivo socket de Unix para conectarse a través de un

archivo en el sistema de ficheros (por defecto / tmp/mysql.sock), o utilizando

TCP/IP, que se conecta a través de un número de puerto. Una conexión a través

de archivo socket de Unix es más rápida que a través de TCP/IP, pero solo puede

ser utilizada cuando se conecta a un servidor en la misma máquina. Se utiliza un

archivo de socket Unix siempre que no se especifique un nombre de servidor o si

se especifica el nombre de servidor especial localhost. Si el servidor MySQL está

ejecutándose en Windows 9x o Me, puede conectarse únicamente a través de

TCP/IP. Si el servidor se está ejecutando sobre Windows NT, 2000, XP, o 2003 y

ha sido iniciado con la opción --enable-named-pipe, puede también conectarse a

través de named pipes si el cliente se está

ejecutando en la misma máquina que el servidor. El nombre de la named pipe es

por defecto MySQL. Si no se especifica un nombre de servidor al conectar a

mysqld, un cliente MySQL intenta primero conectarse Can't connect to [local]

MySQL server 1588 a la named pipe. Si esto no funciona, se conecta al puerto

TCP/IP. Usted puede forzar la utilizaciónde named pipes en windows utilizando .

como el nombre de servidor. hostname.

El error (2002) Can't connect to ... normalmente significa que no hay un servidor

MySQL

ejecutándose en el sistema o que usted está especificando un archivo de socket

Unix o número de puerto TCP/IP al intentar conectarse al servidor.

Comience por comprobar si hay un proceso llamado mysqld ejecutándose en el

servidor. (Utilice ps xa | grep mysqld en Unix o el Administrador de tareas en

Page 15: MANUAL DE INSTALACION Y USO DE MYSQL

Windows). Si no existe ese proceso, debería iniciar el servidor. Si hay un proceso

mysqld ejecutándose, puede comprobarlo ejecutando los siguientes comandos.

El número de puerto o nombre del archivo socket de Unix pueden ser diferentes

en su configuración. host_ip representa el número de IP de la máquina donde se

está ejecutando el servidor.represents the IP number of the machine where the

server is running.

shell> mysqladmin version

shell> mysqladmin variables

shell> mysqladmin -h `hostname` version variables

shell> mysqladmin -h `hostname` --port=3306 version

shell> mysqladmin -h host_ip version

shell> mysqladmin --protocol=socket --socket=/tmp/mysql.sock version

Tenga en cuenta la utilización de acentos abiertos en vez de comillas en el

comando hostname; esto provoca que la salida de hostname (es decir, el nombre

de máquina actual) sea sustituida en el comando mysqladmin. Si no tiene ningún

comando hostname o está ejecutando sobre Windows, puede escribir

manualmente el nombre de su máquina (sin acentos abiertos) tra la opción -h.

También puede intentarlo con -h 127.0.0.1 para conectarse con TCP/IP a la

máquina local.

Aquí hay algunas razones por las que el error Can't connect to local MySQL server

podría ocurrir:

• mysqld no se está ejecutando. Compruebe la lista de procesos de sus sistema

operativo para

asegurarse de que el proceso mysqld está presente.

• Usted está ejecutando un sistema que utiliza hilos tipo MIT-pthreads. Si está

ejecutando un sistema que no tiene hilos antivos, mysqld utiliza el paquete de MIT-

pthreads package. Aún así, no todas las versiones de MIT-pthreads soportan los

archivos socket de Unix. En un sistema sin soporte para archivos socket, siempre

debe especificar el nombre de máquina explícitamente cuando se conecte al

servidor. Intente utilizar este comando para comprobar la conexión con el servidor:

shell> mysqladmin -h `hostname` version

Page 16: MANUAL DE INSTALACION Y USO DE MYSQL

• Alguien ha borrado el archivo socket de Unix que mysqld utiliza (/tmp/mysql.sock

por defecto).

Por ejemplo, usted podría tener un trabajo de cron que elimine los archivos

antiguos del directorio / tmp. Siempre puede ejecutar mysqladmin version para

comprobar si el archivo socket de Unix que to check whether the Unix socket file

that mysqladmin está intentando utilizar existe realmente.

La solución en este caso es cambiar el trabajo de cron para que no elimine

mysql.sock o colocar el archivo socket en algún otro lugar. Consulte.

• Usted ha iniciado el servidor mysqld con la opción --socket=/path/to/socket, pero

ha olvidado decirle al programa cliente el nuevo nombre del archivo socket. Si

cambia la ruta del socket en el servidor, también tiene que notificárselo a los

programas cliente. Puede hacer esto proporcionándole al cliente la misma opción

--socket al ejecutarlo. También debe asegurarse de que los programas Client does

not support authentication protocol

1589 cliente tienen permiso para acceder al archivo mysql.sock. Para averiguar

donde está almacenado el archivo, puede hacer:

shell> netstat -ln | grep mysql

Consulte

• Usted está ejecutando Linux y un hilo del servidor ha muerto (volcado de

memoria). En este caso, usted debe matar el resto de hilos de mysqld (por

ejemplo, con kill o con el script mysql_zap) antes de que pueda reiniciar el servidor

MySQL.

• El servidor o el programa cliente podrían no tener los privilegios de acceso

adecuados para el directorio que almacena el archivo socket de Unix, o para el

archivo mismo. En este caso, usted debe cambiar los privilegios del directorio o los

del archivo mismo para que el servidor y los clientes puedan acceder a ellos, o

reiniciar mysqld con una opción --socket que especifique un nombre de archivo de

socket en un directorio donde el servidor pueda crearlo y los programas cliente

puedan acceder a él.

Page 17: MANUAL DE INSTALACION Y USO DE MYSQL

Si usted obtiene el mensaje de error Can't connect to MySQL server on

some_host, puede intentar los siguientes procedimientos para averiguar cual es el

problema:

• Compruebe si el servidor se está ejecutando en esa máquina mediante la

ejecución de telnet

some_host 3306 y presionando la tecla Enter unas cuantas veces. (3306 es el

puerto por defecto de MySQL. Cambie el valor si su servidor está escuchando en

un puerto diferente.) Si hay un servidor MySQL ejecutándose y escuchando al

puerto, debería obtener una respuesta que incluyera el número de versión del

servidor. Si obtiene un error como telnet: Unable to connect to remote host:

Connection refused, entonces no hay ningún servidor ejecutándose en el puerto

dado.

• Si el servidor está ejecutándose en la máquina local, intente utilizar mysqladmin -

h localhost variables para conectar utilizando el archivo socket de Unix.

Colmpruebe el número de puerto TCP/ IP al que el servidor está configurado para

escuchar (es el valor de la variable port.)

• Asegúrese de que su servidor mysqld no fue iniciado utilizando la opción --skip-

networking. Si lo fue no puede conectarse a él utilizando TCP/IP.

• Compruebe que no hay un cortafuegos bloqueando el acceso a MySQL.

Aplicaciones como ZoneAlarm o el cortafuegos personal de Windows XP podría

necesitar ser configurados para permitir el acceso externo a un servidor MySQL.

Client does not support authentication protocolLas versiones de MySQL número 4.1 y superiores utilizan un protocolo de

autentificación basado en un algoritmo de hash de la clave que es incompatible

con el que se utiliza en los clientes anteriores. Si actualiza su servidor a 4.1, los

intentos de conectarse a él desde un cliente más viejo pueden fallar con el

siguiente mensaje:

shell> mysql

Client does not support authentication protocol requested

Page 18: MANUAL DE INSTALACION Y USO DE MYSQL

by server; consider upgrading MySQL client

Para resolver este problema, debería utilizar alguno de los siguientes métodos:

• Actualizar todos los programas clientes para que utilicen la librería de cliente

4.1.1 o posterior.

• Cuando se conecte al servidor con un programa cliente anterior al 4.1, utilice una

cuenta que todavía mantenga una clave al estilo pre-4.1.

La contraseña falla cuando se introduce interactivamente 1590

• Reestablezca la clave al estilo pre-4.1 para cada usuario que necesite utilizar un

programa cliente

anterior a la versión 4.1. Esto puede hacerse utilizando la sentencia SET

PASSWORD y la función

OLD_PASSWORD():

mysql> SET PASSWORD FOR

-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Una alternativa es utilizar UPDATE y FLUSH PRIVILEGES:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')

-> WHERE Host = 'some_host' AND User = 'some_user';

mysql> FLUSH PRIVILEGES;

Sustituya la clave que quiera utilizar por “newpwd” en los ejemplos precedentes.

MySQL no puede

retornar la clave original, así que es necesario introducir una clave nueva.

• Indique al servidor que utilice el algoritmo de hashing de claves antiguo:

1. Inicie mysqld con la opción --old-passwords.

2. Asigne una clave con formato antiguo a cada cuenta que tenga su clave

actualizada al formato más largo de la versión 4.1. Puede identificar estas cuentas

con la siguiente consulta:

mysql> SELECT Host, User, Password FROM mysql.user

-> WHERE LENGTH(Password) > 16;

Para cada registro de cuentas que se muestre en la consulta, utilice los valores de

Host y User y

Page 19: MANUAL DE INSTALACION Y USO DE MYSQL

asigne una clave utilizando la función OLD_PASSWORD() y SET PASSWORD o

UPDATE, tal como se ha explicado previamente.

Nota: En PHP, la extensión mysql no soporta el nuevo protocolo de autentificación

en MySQL 4.1.1

y superior. Esto es así independientemente de la versión de PHP utilizada. Si

desea poder utilizar la extensión mysql con MySQL 4.1 seguir alguna de las

indicaciones explicadas arriba para configurar MySQL con clientes antiguos. La

extensión mysqli (que significa "MySQL mejorado" - "MySQL Improved"; nueva en

PHP 5) es compatible con el nuevo algoritmo de hashing mejorado empleado en

MySQL 4.1 y superiores, y sin ninguna configuración especial necesaria que deba

hacerse para utilizar esta nueva librería cliente de MySQL para PHP. Para más

información sobre la extensión mysqli For additional background on password

hashing and authentication, Consulte

La contraseña falla cuando se introduce interactivamenteLos programas cliente de MySQL piden una contraseña cuando son invocados

con la opción --

password o -p sin especificar ningún valor para la contraseña:

shell> mysql -u user_name -p

Enter password:

En algunos sistemas, puede ocurrir que su contraseña funcione cuando es

especificada en un archivo de opciones o en la línea de comandos, pero no

cuando sea introducida interactivamente en la línea de

comandos. Esto ocurre cuando la librería proveida por el sistema para leer

contraseñas limite los valores de éstas a un número pequeño de caracteres

(normalmente ocho). Eso es un problema con la librería del La máquina

'host_name' está bloqueada 1591

sistema, no con MySQL. Para poder solucionarlo, cambie su contraseña de

MySQL a un valor que sea de ocho o menos caracteres de longitud, o ponga su

constraseña en un archivo de opciones.

Page 20: MANUAL DE INSTALACION Y USO DE MYSQL

La máquina 'host_name' está bloqueadaSi obtiene el siguiente error, significa que mysqld ha recibido demasiados intentos

de conexión desde la máquina 'host_name' que han sido interrumpidos:

Host 'host_name' is blocked because of many connection errors.

Unblock with 'mysqladmin flush-hosts'

El número de intentos de conexión interrumpidos se puede determinar con el valor

de la variable de sistema max_connect_errors. Tras max_connect_errors intentos

fallidos, mysqld asume que hay algo que va mal (por ejemplo, que alguien está

intentando romper la seguridad del sistema), y bloquea la máquina para que no

pueda intentar volver a conectarse hasta que usted ejecute el comando

mysqladmin flush-hosts o introduzca la sentencia FLUSH HOSTS. Consulte Por

defecto, mysqld bloquea una máquina tras 10 errores de conexión. Puede ajustar

el valor iniciando el servidor así:

shell> mysqld_safe --max_connect_errors=10000 &

Si usted obtiene este mensaje de error para una máquina concreta, debería

primero averiguar que no hay ningún problema con las conexiones TCP/IP desde

esa máquina. Si está teniendo problemas de red, no hace ningún bien el

incrementar el valor de la variable max_connect_errors.

Demasiadas conexionesSi obtiene un error Too many connections cuando intenta conectarse al servidor

mysqld, significa que todas las conexiones disponibles están siendo utilizadas por

otros clientes.

El número de conexiones permitidas está controlado por la variable de sistema

max_connections. Su valor por defecto es 100. Si necesita soportar más

conexiones, debería reiniciar mysqld con un valor más grande de esta variable.

mysqld realmente permite conectarse a max_connections+1 clientes. La conexión

extra esta

reservada para ser utilizada por cuentas que tienen el privilegio SUPER.

Otorgando el privilegio SUPER a los administradores y no a usuarios normales

Page 21: MANUAL DE INSTALACION Y USO DE MYSQL

(que no deberían necesitarlo), un administrador puede conectarse al servidor y

utilizar SHOW PROCESSLIST para diagnosticar problemas aún cuando el máximo

número de clientes sin privilegios estén conectados.

El número máximo de conexiones que MySQL puede soportar depende de la

calidad de la librería de hilos de una plataforma dada. Linux o Solaris deberían ser

capaces de soportar 500-1000 conexiones simultáneas, dependiendo de cuanta

RAM tenga y que estén haciendo los clientes. Los binarios estáticos de Linux

proveidos por MySQL AB pueden soportar hasta 4000 conexiones.

Out of memorySi usted ejecuta una consulta utilizando el programa cliente mysql y recibe un error

como el siguiente, significa que mysql no tiene suficiente memoria para almacenar

el resultado completo de la consulta: mysql: Out of memory at line 42, 'malloc.c'

mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)

MySQL se ha apagado 1592

ERROR 2008: MySQL client ran out of memory

Para remediarlo, primero compruebe si su consulta es correcta. ¿Es razonable

que devuelva tantas filas? Si no, corríjala y inténtelo de nuevo. Si no es así, puede

invocar mysql con la opción --quick. Esto provoca que utilice la función

mysql_use_result() de la API C para obtener el resultado, lo que hace que haya

menos carga en el cliente (pero más en el servidor).

MySQL se ha apagadoEsta sección también explica el error relacionado Lost connection to server during

query. La razón más común para el error MySQL server has gone away es que el

servidor ha agotado el tiempo de espera y ha cerrado la conexión. En este caso,

normalmente obtendrá uno de los siguientes códigos de error (dependiendo del

sistema operativo):

Código de error DescripciónCR_SERVER_GONE_ERROR El cliente no pudo enviar una consulta al servidor.

Page 22: MANUAL DE INSTALACION Y USO DE MYSQL

CR_SERVER_LOST El cliente no obtuvo ningún error al escribir al servidor pero

tampoco obtuvo una respuesta completa (o ninguna respuesta) a la pregunta.

Por defecto, el servidor cierra la conexión tras ocho horas si no pasa nada. Puede

cambiar el límite de tiempo estableciendo la variable wait_timeout cuadno inicie

mysqld. Si usted tiene un script, tiene que ejecutar la consulta de nuevo para que

el cliente haga una reconexión automática. Esto da por hecho que tiene la

reconexión automática activada en el cliente (que es la opción por defecto en el

cliente de línea de comandos mysql).

Otras razones comunes por las que puede aparecer el error MySQL server has

gone away son:

• Usted (o el administrador de la base de datos) ha matado el hilo que se estaba

ejecutando con una sentencia KILL o el comando mysqladmin kill.

• Usted ha intentado ejecutar una sentencia tras cerrar la conexión con el servidor.

Esto es síntoma de un error lógico en la aplicación que debería ser corregido.

• Se ha agotado el tiempo de espera de una conexión TCP/IP desde el lado

cliente. Esto puede ocurrir si usted ha estado utilizando los comandos:

mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...)

o mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...). En este caso, aumentar

el tiempo de espera puede ayudar a resolver el problema.

• Se ha agotado el tiempo de espera en el lado del servidor, y el cliente no tiene

activada la opción de reconexión automática (la opción reconnect en la estructura

MYSQL es igual a 0).

• Usted está utilizando un cliente windows y el servidor ha cortado la conexión

(probablemente porque wait_timeout ha expirado) antes de que el comando fuese

ejecutado.

El problema en windows es que en algunos casos MySQL no obtiene un error

desde el SO cuando escribe a la conexión TCP/IP desde el servidor, sino que

obtiene el error cuando intenta leer la

respuesta desde la conexión.

En este caso, aunque el flag reconnect en la estructura MYSQL sea igual a 1,

MySQL no reconecta y

Page 23: MANUAL DE INSTALACION Y USO DE MYSQL

vuelve a ejecutar la sentencia, ya que no sabe si el servidor recibió la sentencia

original o no.

La solución a esto es o hacer un mysql_ping en la conexión si ha pasado mucho

tiempo desde la última sentencia (esto es lo que MyODBC hace) o establecer un

wait_timeout en el servidor mysqld tan alto que en la práctica, nunca llegue a

sobrepasarse.

Packet too large 1593

• También puede obtener estos errores si envía una consulta al servidor que sea

incorrecta o demasiado grande. Si mysqld recibe un paquete que es demasiado

grande o fuera de lugar, asume que ha habido algún error con el cliente y cierra la

conexión. Si necesita realizar grances consultas (por ejemplo, si está trabajando

con columnas BLOB muy grandes), debería incrementar el límite de las consultas

estableciendo la variable de servidor max_allowed_packet, que tiene un valor por

defecto de 1MB.

También podría necesitar incrementar el tamaño máximo de paquete en el lado

cliente

• También puede perder la conexión si envía un paquete de más de 16MB y su

cliente es anterior a la versión 4.0.8 y su servidor posterior a 4.0.8, o viceversa.

• También puede ver el error MySQL server has gone away si MySQL se inicia con

la opción --

skip-networking.

• Ha encontrado un error por el que el servidor cayó mientas ejecutaba una

sentencia.

Puede comprobar si el servidor MySQL cayó y se reinició ejecutando mysqladmin

version y examinando el tiempo de ejecución del servidor (uptime). Si la conexión

del cliente se cortó debido a que mysqld falló y se reninicó, debería intentar

encontrar la razón del fallo. Comience por comprobar si ejecutando la misma

sentencia el servidor cae de nuevo.

Puede obtener más información sobre las conexiones perdidas iniciando mysqld

con la opción --logwarnings=

2. Esto registra algunos de los errores de desconexión en el archivo hostname.err.

Page 24: MANUAL DE INSTALACION Y USO DE MYSQL

Si quiere crear un informe de error en relación a este problema, asegúrese de

incluir la siguiente información:

• Indique si el servidor MySQL murió. Puede enecontrar esta información en el

registro de errores del servidor. Si una consulta específica mata a mysqld y las

tablas implicadas habían sido comprobadas con CHECK TABLE antes de ejecutar

la consulta, ¿puede proporcionar una prueba que permita reproducir el caso?

• ¿Cual es el valor de la variable de sistema wait_timeout en el servidor MySQL?

(mysqladmin variables le da el valor de esta variable.)

• Ha intentado ejecutar mysqld con la opción --log para determinar si la consulta

problemática aparece en el registro?

COMANDOS BASICOS

COMANDO PARA LA CREACION DE BASE DE DATOS

HACEMOS USO DE LA BASE DE DATOS QUE CREAMOS

CREAMOS UN USUARIO NUEVO

Page 25: MANUAL DE INSTALACION Y USO DE MYSQL

LE DAMOS LOS PRIVILEGIOS AL USUARIO NUEVO


Recommended