transaction single info drop data mysql ubuntu mysqldump

single - mysqldump: tengo errno 32 en escritura



mysqldump--no-data (11)

Ante el mismo problema. No sé exactamente por qué, pero si agrega la utilidad, PV concluyó que todo funciona. Tal vez depende de tu shell bash / sh.

sudo apt-get install pv

PipeViewer es una utilidad muy útil, le permite visualizar procesos de escritura en el disco, por ejemplo.

Script por ejemplo

mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip | pv > ${BACKUP_DEST}/${DB}.sql.gz

Utilicé este script durante años en mi VPS. Y sigue funcionando.

DBLIST=`mysql -uroot -pROOT_PASSWORD -ANe"SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata WHERE schema_name NOT IN (''information_schema'',''performance_schema'')" | sed ''s/,/ /g''` MYSQLDUMP_OPTIONS="-uroot -pROOT_PASSWORD --single-transaction --routines --triggers" BACKUP_DEST="/home/backup/db/" for DB in `echo "${DBLIST}"` do mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip > ${BACKUP_DEST}/${DB}.sql.gz & done wait tar -czvf /home/backup/db2/`date +/%G-/%m-/%d`_db.tar.gz ${BACKUP_DEST}

Ahora me mudo a otro hosting. Estoy intentando usar el mismo script (por supuesto, cambié ROOT_PASSWORD con las nuevas credenciales) pero no sé por qué obtengo esto:

mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write mysqldump: Got errno 32 on write


Asegúrese de que la carpeta / home / backup / db / (que está utilizando para almacenar la copia de seguridad) tenga permiso de escritura (para una revisión rápida: intente usar chmod -R 777 en esa carpeta y ejecute el script para asegurarse).


Compruebe si la carpeta existe en su ubicación, / home / backup / db /

Si no, crea cada subcarpeta.

Comando: mkdir / home / backup / db /

luego ejecute su comando de nuevo.


Errno 32 es "tubería rota", por lo que cualquier error que ocurra con el destino de la tubería (en este caso, gzip) causará el error 32. Si la estructura del directorio ha cambiado y su ${BACKUP_DEST} ya no hace referencia a un directorio que existe este problema ocurriría.

Debería depurar esto canalizando otra cosa a su comando gzip o creando una copia de seguridad sin comprimir que no implique gzip.


Es un tema tan viejo, pero estoy enfrentando ese problema y encuentro que:

mi nombre de archivo: db_26 / 03.tar.gz está generando un error como el anterior; pero cuando hago: db.tar.gz no hay error.

Así que debes comprobar tu nombre de archivo


Estaba usando mysqldump de la CLI e intentaba canalizar a gzip y / o un archivo y obtenía un error de "permiso denegado".

Incluso como sudo , recibía un error porque, aunque estaba ejecutando mysqldump como sudo , la canalización aún intentaba usar la cuenta de usuario en la que había iniciado sesión en el shell para escribir la salida. En este caso, mi cuenta de usuario shell no tenía permisos para escribir en el directorio de destino.

Para solucionar esto, puede usar el comando tee junto con sudo :

mysqldump --single-transaction --routines --events --triggers --add-drop-table --extended-insert -u backup -h 127.0.0.1 -p --all-databases | gzip -9 | sudo tee /var/backups/sql/all_$(date +"%Y_week_%U").sql.gz > /dev/null

El | sudo tee /var/backups/... | sudo tee /var/backups/... es lo que nos permite canalizar a un directorio que solo se puede escribir por root . El > /dev/null suprime el tee de volcar su salida directamente a la pantalla.


Estaba viendo este error, al canalizar la salida de mysqldump a s3cmd. Fue causado por el uso de la versión incorrecta de s3cmd. En Ubuntu Trusty y Debian Wheezy, la versión empaquetada del comando s3cmd no admite stdin (porque tienen la versión 1.1.0).



Me sorprendió que no pudiera hacer un volcado de mi DB, pude hacerlo el día anterior. Ahora, estaba recibiendo este error.

Como hemos dicho, el mensaje de error significa Tubería rota, lo que significa que la salida no se puede escribir en el disco. En mi caso, mi usuario de SSH no tenía permiso para escribir en la carpeta que estaba seleccionando en mi instrucción mysqldump.

Puede mostrar su volcado en su directorio / home / your_user para ver que aún recibe el mismo error. Al hacerlo resolví mi problema.


Tuve el mismo problema debido a un par de errores tipográficos.

1.) Escribí el nombre del usuario de la base de datos incorrectamente. Tenía "db_user_1" cuando en realidad era "db_user1".

2.) Después de la tubería olvidé que > in tenía gzip > myfile.tar.gz .

Pero le recomiendo que actualice a mysql 5.6+ lo antes posible, para que pueda dejar de exponer las contraseñas de la base de datos a otros usuarios.

Echa un vistazo a esta respuesta en .


20:47:59 0 ~] $ perror 32 OS error code 32: Broken pipe

Así que errno 32 es "tubo roto". Estás canalizando la salida de mysqldump a gzip , por lo que esto significa que gzip terminó antes de que mysqldump terminara. Podría ser, por ejemplo, porque su disco está lleno, o gzip superó el tiempo / uso máximo de CPU que tiene su host.