2011-12-20 28 views
7

Hola, estoy intentando tomar una copia de seguridad del cliente de la línea de comandos de mysql. Estoy usando mysqldump para hacer una copia de seguridad con nombre de usuario y contraseña. A continuación se muestra el comando que estoy usando para hacer una copia de seguridad de la base de datos.Error al realizar una copia de seguridad con mysqldump en la línea de comandos de mysql

mysql> mysqldump -u username -p password databasename > backup.sql; 

Me estoy poniendo siguiente error

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'mysql 
dump -u username -p password fms > backup.sql' at line 1 

Aunque el comando parece ser correcta, todavía estoy error al obtener. Por favor, hágamelo saber si hay alguna otra forma de tomar copia de seguridad de la línea de comandos de mysql.

Gracias de antemano.

Respuesta

16

mysqldump no es un comando de MySQL, es una utilidad de línea de comandos. Debe llamarlo desde su línea de comando de shell.

+0

¿Cómo accedo a la línea de comandos del shell? – harshakasireddy

+0

De la misma manera que está accediendo a ejecutar el comando 'mysql -u username -pcontraseña' a través de SSH – Timur

+0

Gracias por reproducir. – harshakasireddy

3

El problema es que está ejecutando el comando desde un indicador de MySQL en lugar de un shell de Linux. Salga de la línea de comando mysql y ejecute el comando desde el shell del SO (elimine el punto y coma al final)

+0

Gracias por reproducir. – harshakasireddy

2

En su comando, no puede tener un espacio entre -p y password. Además, mysqldump debe ejecutarse en la línea de comandos, no en un shell mysql.

Pruebe esto en su línea de comandos

mysqldump -u username -ppassword databasename > backup.sql 
+0

Lo he intentado también, pero no sirve el mismo error que estoy recibiendo. ¿Cómo ejecuto mysqldump en la línea de comandos? Por favor hagamelo saber. Gracias por repetir. – harshakasireddy

+0

¡Oh! Lame question Lame answer –

2

yo no entendía lo que los otros estaba tratando de decir hasta que vi this question.

El problema es que no se puede acceder al "mysql.exe" y poner el mysqldump en él. El "mysqldump.exe" es otro archivo, por lo que debe ejecutarlo desde la línea de comandos del sistema operativo pasando los parámetros a la ejecución.

Así, en el DOS (en Windows, por supuesto), supose que estás en el directorio: "C: \ xampp \ mysql \ bin", a continuación, se puede llamar al siguiente comando:

mysqldump -u root -p test > test.sql 

también puede llamar así, de esta manera, para que pueda ver de forma explícita que se está ejecutando un archivo:

.\mysqldump.exe -u root -p test > test.sql 

Si puede ser más limpia cristales, se vería que la línea en el DOS:

c:\xampp\mysql\bin>.\mysqldump.exe -u root -p test > test.sql 

Ps: en ese código se le pedirá que informe la contraseña después de la ejecución. Esa es, de hecho, la recomendación que le da "mysqldump.exe" si coloca la contraseña directamente en la línea de volcado.

Ps 2: si está utilizando la configuración predeterminada del usuario raíz (es decir, con la contraseña vacía), solo tiene que presionar "Enter" cuando se le solicite que informe la contraseña.

Ps 3: el "test.sql" se creará en el mismo directorio de "mysqldump.exe". En este ejemplo, en: "C: \ xampp \ mysql \ bin".

1

Tipo de esto en su interfaz de línea de comandos no en MySQL línea de comandos:

mysqldump -u username -ppassword databasename > backup.sql 

Por ejemplo, si el nombre es 'raíz', la contraseña es 'abcdefg', y el nombre de la base de datos es 'mydatabase', a continuación, la sintaxis es:

mysqldump -u root -pabcdefg mydatabase > backup.sql 

backup.sql es el nombre del archivo en el que se almacenará la copia de seguridad para que pueda tener cualquier nombre.

+0

no agrega nada a las respuestas existentes. – hawk

Cuestiones relacionadas