Pregunta

Estoy tratando de escribir un script PHP para copia de seguridad de una base de datos MySQL:

   if ( $db_resource = mysql_connect($db_server, $db_username, $db_password, $db_newlink) )
   {
      if ( mysql_select_db( $db_name, $db_resource ) )
      {
         $backupFile = $db_name."_".date( "Y-m-d-H-i-s" ).".gz";
         $command = "mysqldump --opt -h ".$db_server." -u ".$db_username." -p ".$db_password." ".$db_name." | gzip > ".$db_save_dir."/".$backupFile;
         system( $command );
      }
   }

   mysql_close( $db_resource );

Cuando lo ejecuto desde el terminal de concha, me sale esto:

  

[pastinaca] $ php / [ ABSOLUTO   PATH ] / db_backup.php

     

Introduce el password: [ I CONTRASEÑA ]

     

mysqldump: error conseguida: 1044: Acceso   denegado para el usuario   '[ Nombre de usuario ]' @ '208.113.128.0/255.255.128.0'   a la base de datos '[ Contraseña ]' cuando   la selección de la base de datos

Bien, ahora lo que realmente no entiendo es por eso que se llama la base de datos como mi contraseña. Si dirijo mi navegador web en el archivo, se ejecuta muy bien. ¿Alguien sabe lo que debería hacer? En lo personal, yo realmente no importa si es PHP, Python, CGI, etc., con tal de que se puede ejecutar en un servidor Apache.

Gracias.

¿Fue útil?

Solución

La sintaxis de la bandera contraseña es diferente. Retire el espacio después de la bandera -p y darle otra oportunidad.

Otros consejos

intentar utilizar los nombres de las opciones de pleno derecho; tuve un problema similar pero no hay tiempo para hacer frente a la verdadera raíz de la falla; sin embargo, esto funcionó y funciona para mí:

/usr/bin/mysqldump \
--user=username \
--password=password \
dbname > mysqldump.sql

1: ningún espacio entre -p y CONTRASEÑA por ejemplo: -p ". $ contraseña_bd"

2: conceder. Todos (si lo desea) los privilegios de un usuario específico para esa base de datos

3: dar al archivo permisos correctos para ejecutar el comando.

Si acaba de realizar copias de las cosas que recomendaría encarecidamente el uso de rel="nofollow esta muy configurable, fuente muy fácil, abierto cron escritura de reserva . Es excelente y creo que te gustará si eso es todo lo que busca.

Si es realmente necesario para su ejecución a través de Apache se puede usar acentos abiertos para activar remotamente el guión y luego se obtiene la rotación de copia de seguridad y copias de seguridad semanales / mensuales, compresión y registro de forma gratuita.

Le sugiero que use SqlBuddy , resolvió mi problema como tu.

Proceder con un script personalizado sólo si desea utilizar cron o un script automatizado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top