por poner password error errcode defecto contraseƱa asignar mysql

mysql - poner - Archivo de clave incorrecto para la tabla ''/tmp/#sql_3c51_0.MYI''; intenta repararlo



poner contraseƱa a root mysql (8)

El mismo problema para mi

Ejecute df -h para ver si su partición / tmp tiene suficiente espacio

En mi caso / tmp era un sistema de archivos de desbordamiento:

overflow 1,0M 24K 1000K 3% /tmp

Que pasó:

Tuve algún problema aquí y mi partición / estaba llena, luego la distribución Debian creó una nueva partición /tmp en memoria RAM, para usar temporalmente. Esta partición /tmp 1MB no es lo suficientemente grande para el uso del sistema.

Solución: ejecute el siguiente comando para eliminar esta partición /tmp creada temporalmente

sudo umount -l /tmp

Esta pregunta ya tiene una respuesta aquí:

Escribí una consulta y esto se ejecuta en mi servidor local correctamente, tiene menos datos,

pero cuando ejecuto esto en el servidor de producción aparece un error - (esto tiene más datos alrededor de 6GB)

Incorrect key file for table ''/tmp/#sql_3c51_0.MYI''; try to repair it

Aquí está mi consulta

SELECT `j25_virtuemart_products`.`virtuemart_product_id`, `product_name`, `product_unit`, `product_s_desc`, `file_url_thumb`, `virtuemart_custom_id`, `custom_value` FROM `j25_virtuemart_product_customfields`, `j25_virtuemart_products`, `j25_virtuemart_products_en_gb`, `j25_virtuemart_product_medias`, `j25_virtuemart_medias` WHERE ( `j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_products_en_gb`.`virtuemart_product_id` AND `j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_product_customfields`.`virtuemart_product_id`) AND `j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_product_medias`.`virtuemart_product_id` AND `j25_virtuemart_product_medias`.`virtuemart_media_id`=`j25_virtuemart_medias`.`virtuemart_media_id` GROUP BY `j25_virtuemart_products`.`virtuemart_product_id` LIMIT 0, 1000;

Alguien sabe cómo recuperarse de ese error, algo así como minimizar esta consulta o cualquier otra forma gracias.


El problema se debe a la falta de espacio en disco en la carpeta / tmp. El volumen / tmp se usa en consultas que requieren crear tablas temporales. Estas tablas temporales están en formato MyISAM incluso si la consulta utiliza solo tablas con InnoDB.

Aquí hay algunas soluciones:

  • optimice la consulta para que no cree tablas temporales (reescriba la consulta, divídala en varias consultas o agregue índices adecuados)
  • optimice MySQL para que no cree tablas temporales (sort_buffer_size, join_buffer_size). Consulte: https://dba.stackexchange.com/questions/53201/mysql-creates-temporary-tables-on-disk-how-do-i-stop-it
  • agregue más espacio de disco en el volumen donde reside la carpeta / tmp
  • cambie el usuario de la carpeta temporal por mysql configurando la variable de entorno TMPDIR antes del inicio de mysqld. Apunte TMPDIR a una carpeta en un volumen de disco que tenga más espacio libre. También puede usar la opción tmpdir en /etc/my.cnf o --tmpdir en la línea de comandos del servicio mysqld. Ver: B.5.3.5 donde MySQL almacena archivos temporales


Muchas de las respuestas están arriba y el propietario de la pregunta ya obtuvo la solución sugerida por @Hawili, y se ha pasado mucho tiempo desde que surgió este problema. Pero como este es un problema común, quería compartir mi experiencia para que si alguien vuelve a tener este problema debido a diferentes razones, pueda obtener una solución desde aquí.

Caso 1:

La razón más común es que una consulta está obteniendo datos mayores que el tamaño de su partición / tmp. Siempre que tenga este problema durante una consulta, mire el tamaño de su carpeta / tmp. Las tablas temporales se crean y eliminan automáticamente, y si el espacio disponible aquí se reduce a 0 durante esta consulta, significa que necesita optimizar su consulta o necesita aumentar el tamaño de la partición / tmp.

Nota: a veces no es una consulta individual: si una combinación de consultas pesadas hace esto al mismo tiempo en el mismo servidor, puede obtener este problema, donde normalmente las consultas individuales se ejecutarán sin ningún error.

Caso 2:

En el caso de una tabla myisam dañada en la que deba repararse, la ruta del directorio será diferente a / tmp en el mensaje de error.

Caso 3: (caso raro)

A veces, debido a una combinación de tablas incorrecta, puede obtener este error. Esto es realmente un error de sintaxis, pero mysql puede lanzar este error en su lugar. Puedes ver los detalles aquí en el enlace de abajo

Archivo de clave incorrecto para la tabla ''/tmp/#sql_18b4_0.MYI''; intenta repararlo


Reinicie el servicio MySQL usando esta línea de comando /etc/init.d/mysqld restart en terminal.


Utilicé este siguiente comando y el error desapareció:

mysqlcheck --all-databases -r #repair

Obtuve esta solución del foro de cpanel.


Verifique en su servidor de base de datos si tiene suficiente espacio en disco. Si los discos están llenos, se muestra este error. Ahora, las carpetas que debe ver dependen de su configuración.


Verifique la ubicación de su directorio tmp ejecutando df -h . Asegúrate de que haya suficiente espacio para hacer crecer el archivo temporal, podría haber varios conciertos.

Editar: si tiene suficiente espacio libre, me aseguraría de que cada columna que está indexando o incluyendo en la cláusula WHERE esté indexada.