Hi friends!
I have some trouble restoring a mysql database that I backed up with mysqldump. I have been trying to do this from a command prompt (Windows)

This is my code:

mysql -u root -pPassword databasename < C:\Backup\databaseNameToBeRestored.sql

With this, I get the message that "mysql" is not recognized as internal or external or external command, operable program or batch file.

I added "" to get "mysql -u root -pPassword databasename < C:\Backup\databaseNameToBeRestored.sql" But to this I get error message "The filename, directory name, or volume lable syntax is incorrect"

This man here said the code I tried worked for him.

Any help please? (and if you don't mind, I would appreciate if somebody could told me why changing > to < in the mysqldump command does not work 100% in restoring the backed database)

go to the folder where mysql.exe exists and execute the command there

commented: thanks. please check my reply. +2

As to your second question: mysqldump only exports information (hence the "dump" postfix). It was never designed to receive input, that's why it doesn't work.

take a look at http://adityangoyal.blogspot.in/2013/04/importexport-mysql-database.html .I have explained how to import and export mysql database.
* As what i can see,the error you are getting is because you have to set the path of mysql.exe in your system environment variable.
Go to System properties->Environment variable.In system varaiable->path.At end add semicolon and add the path of mysql.exe(location of mysql.exe eg:C:\Program Files\MySQL\MySQL Server 5.5\bin)
* Using command prompt go till the location of mysql.exe and then run above command

Try this..

mysqldump -u username -p databasename < C:\Backup\databaseNameToBeRestored.sql

We always change from < to > because
when we use "<" we are importing a file to our database.
And on the other hand when we use ">" we are exporting.
that's it!!

Happy coding.

commented: thanks. please check my reply. +2

imBaCodes, there I had tried that, and there something that I could not figure out:
-I backed up a database successfully with mysqldump.
-In my live database, I deleted one user from a table that contained users information.
-I restored the database (with the same codes as you gave me) from the backup I created in step one. The command prompt shows that everything went well.
-Now I accessed the database to see if the record/user I deleted is back (since I restored the backup that contained him), the user WAS NOT THERE.
-I tried the same thing over and over, no success. I wonder what this is.
Can you explain that imBaCodes?

Thanks all,
I had tried to include the full path to my code. For my case, the code would be,

"C:\Program Files\MySQL\MySQL Server 5.5\mysql -u root -pMyPassword databasename < C:\Backup\databasename.sql"

But then it would say, "The filename, directory name, or volume lable syntax is incorrect"

I also tried:

"C:\Program Files\MySQL\MySQL Server 5.5\mysql" -u root -pMyPassword databasename < C:\Backup\databasename.sql


"C:\Program Files\MySQL\MySQL Server 5.5\mysql" --u root --pMyPassword databasename < C:\Backup\databasename.sql

With no success.

I would appreciate further help please.

instead of backward slash(), try forward slash(/) in your location.

mysql --u root --pMyPassword databasename < C:/Backup/databasename.sql

Note:-I hope that you are also following the steps i told in my first comment,otherwise you will get mysql is not recognised as internal command error

Now I don't know why I get "ERROR :2003(HY000):Can't connect to mysql...on localhost?

I use a different port for mysql so I include it in the code:

mysql --u root --pMyPassword --h localhost --port 3301 databasename < C:/Backup/databasename.sql

More help please?

Check if your mysql service is running.Check if it's status is Started.Try by restarting the mysql service.
If it is still not working also check if firewall is not blocking the service to connect.

Do note that that there is a difference when specifying option with - versus --

mysql -u root -h localhost
mysql --user=root --host=localhost

Use one or the other. Read more.

Friends, I have kept on tying and trying. What's wrong with this one?

"C:\Program Files\MySQL\MySQL Server 5.5\mysql --user=root --password=password --host= localhost --port= 3306 --database=dbname < C:/Backup/dbname.sql"

I get "The filename, directory name, or volume lable syntax is incorrect" error messsage. I have googled for this error to no avail as to do with mysql.

  • My mysql server is up and running with no problem. (Even the mysqldump command works)
  • Problem is the same even if I open the command prompt from C:\Program Files\MySQL\MySQL Server 5.5\mysql
    *I have tried to remove "", did not help.

    For this one, I will really appreciate any help.

Use back slashes on windows, not forward slashes


commented: thanks. please check my reply. +2

Pixesoul, Sorry, I didn't say; I had tried:

"C:\Program Files\MySQL\MySQL Server 5.5\mysql --user=root --password=password --host= localhost --port= 3306 --database=dbname < C:\Backup\dbname.sql"

That, to no avail. I still get the error about filename,directory name..syntax error. Can you figure out where is the problem? I have tried this on XP and Win 7.

Hmm, you should be running it from bin. Try this with two different steps:

1) cd C:\Program Files\MySQL\MySQL Server 5.5\bin

2) mysql –uroot -ppassword -hlocalhost dbname < C:\Backup\dbname.sql

commented: Thanks pixel, and ops, sorry, I had forgotten the /bin. I tried your two steps and, upon running the second one, it brought me lots of information about mysql version, Oracle...then it brough that list which is always brought to you when you miss a comman +0

Have you thought about using a GUI - e.g toad or workbench ?



and just run the script from within.

commented: Thanks. What would the script for use on Workbench look like? Same as this? I hope not. But, I actually need the working script because I want to put it in the application that I'm developing with VB.NET. So I need the script so much to take with me. +2

Thanks pixel, and ops, sorry, I had forgotten the /bin. I tried your two steps and, upon running the second one, it brought me lots of information about mysql version, Oracle...then it brough that list which is always brought to you when you miss a command. It brought me a lot of stuff, which I think, means that we missed something there in the second step. Can you figure it out please?

*Let me also declare that I'm looking for a script/code to take with me to an application I'm developing with VB.NET.

Can you attach the output that you get back from the second command? If it is too much to post in the thread you can attach a text file.

@savedlema:- you are not following all the instructions we are giving.In my first post i have given the path but you are not following it.
If you go to my blog,you will get everything you required.
In second just change backslash to forward

2) mysql –uroot -ppassword -hlocalhost dbname < C:/Backup/dbname.sql

cd C:\Program Files\MySQL\MySQL Server 5.5\bin

This step might be ignored if you have added this path to system variables.

Please read all the solution properly.

commented: IIM, I tried to follow all you said. Except, I didn't know how to go about you first suggestion, so I decided to include the whole path in my script. As I said, I've also tried to change the backslash. Thanks so far. +2

savedlema .. it did not work beacause we just imported .. It did not update the database you have ..
if you are using phpmyadin just upload your backup .. in that case you will not have a prblem in your data..

Pixelsoul... See, I have attached the text I took from the command prompt.

I'd also like to update that, I tried to add "" (to get: mysql "–uroot -ppassword -hlocalhost dbname < C:\Backup\dbname.sql"

to which I now get the error msg "Error 1045 (28000) access denied for user 'odbc'@'localhost' (Using password NO)

First, I think may be the correct syntax should include " at the beginning and the end (as my try)
If that's so, then I need to solve the "Access denied error":

-There is no such a user as 'odbc' in my mysql database.
-The user 'root' is indeed there, with all priviledges.
-I have supplied the correct password.
-From google search, somebody said when he changed 'root' to 'odbc' in the code, it worked, but not for me.
-I'm continuing my google search on this error but haven't found a solution yet, though some people have got this error.

I will appreciate more help, please.

There is another command to do that.
Run following command in mysql command client.

  1. create database dbname;
  2. use dbname;
  3. source C:/Backup/dbname.sql;

This is also provided in my blog that I have provided above.

commented: thanks. please check my reply. +2

IIM..I can't thank you enough. Your solution worked for me.
But, since the database 'dbname' already existed, I decided to run 'delete database if exists dbname' first.

So, your solution works, and now I'm ready to take the code with me to the VB.NET app that I'm developing.

Thank you for your continued support, forgive me when I couldn't follow instructions.

Also, thanks for your great blog:http://adityangoyal.blogspot.in/2013/04/importexport-mysql-database.html

I hope this thread will help someone else in the future.
Again, thank you (and all others out there who contributed)