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

thanks. please check my reply.

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.

thanks. please check my reply.

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.

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

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

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.

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.

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.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Frank Lema>cd C:\Program Files\MySQL\MySQL Server 5.5\bin

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql uroot -pmkwatuke -hlocalhost
shekel < C:\Backup\shekel.sql
mysql  Ver 14.14 Distrib 5.5.28, for Win64 (x86)
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective

Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --auto-rehash       Enable automatic rehashing. One doesn't need to use
                      'rehash' to get table and field completion, but startup
                      and reconnecting may take a longer time. Disable with
                      (Defaults to on; use --skip-auto-rehash to disable.)
  -A, --no-auto-rehash
                      No automatic rehashing. One has to use 'rehash' to get
                      table and field completion. This gives a quicker start of
                      mysql and disables rehashing on reconnect.
                      Automatically switch to vertical output mode if the
                      result is wider than the terminal width.
  -B, --batch         Don't use history file. Disable interactive behavior.
                      (Enables --silent.)
                      Directory for character set files.
  --column-type-info  Display column type information.
  -c, --comments      Preserve comments. Send comments to the server. The
                      default is --skip-comments (discard comments), enable
                      with --comments.
  -C, --compress      Use compression in server/client protocol.
  -#, --debug[=#]     This is a non-debug version. Catch this and exit.
  --debug-check       Check memory and open file usage at exit.
  -T, --debug-info    Print some debug info at exit.
  -D, --database=name Database to use.
                      Set the default character set.
  --delimiter=name    Delimiter to be used.
                      Enable/disable the clear text authentication plugin.
  -e, --execute=name  Execute command and quit. (Disables --force and history
  -E, --vertical      Print the output of a query (rows) vertically.
  -f, --force         Continue even if we get an SQL error.
  -G, --named-commands
                      Enable named commands. Named commands mean this program's
                      internal commands; see mysql> help . When enabled, the
                      named commands can be used from any line of the query,
                      otherwise only from the first line, before an enter.
                      Disable with --disable-named-commands. This option is
                      disabled by default.
  -i, --ignore-spaces Ignore space after function names.
  --init-command=name SQL Command to execute when connecting to MySQL server.
                      Will automatically be re-executed when reconnecting.
  --local-infile      Enable/disable LOAD DATA LOCAL INFILE.
  -b, --no-beep       Turn off beep on error.
  -h, --host=name     Connect to host.
  -H, --html          Produce HTML output.
  -X, --xml           Produce XML output.
  --line-numbers      Write line numbers for errors.
                      (Defaults to on; use --skip-line-numbers to disable.)
  -L, --skip-line-numbers
                      Don't write line number for errors.
  -n, --unbuffered    Flush buffer after each query.
  --column-names      Write column names in results.
                      (Defaults to on; use --skip-column-names to disable.)
  -N, --skip-column-names
                      Don't write column names in results.
  --sigint-ignore     Ignore SIGINT (CTRL-C).
  -o, --one-database  Ignore statements except those that occur while the
                      default database is the one named at the command line.
  -p, --password[=name]
                      Password to use when connecting to server. If password is
                      not given it's asked from the tty.
  -W, --pipe          Use named pipes to connect to server.
  -P, --port=#        Port number to use for connection or 0 for default to, in
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
                      /etc/services, built-in default (3306).
  --prompt=name       Set the mysql prompt to this value.
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -q, --quick         Don't cache result, print it row by row. This may slow
                      down the server if the output is suspended. Doesn't use
                      history file.
  -r, --raw           Write fields without conversion. Used with --batch.
  --reconnect         Reconnect if the connection is lost. Disable with
                      --disable-reconnect. This option is enabled by default.
                      (Defaults to on; use --skip-reconnect to disable.)
  -s, --silent        Be more silent. Print results with a tab as separator,
                      each row on new line.
                      Base name of shared memory.
  -S, --socket=name   The socket file to use for connection.
  --ssl               Enable SSL for connection (automatically enabled with
                      other flags).
  --ssl-ca=name       CA file in PEM format (check OpenSSL docs, implies
  --ssl-capath=name   CA directory (check OpenSSL docs, implies --ssl).
  --ssl-cert=name     X509 cert in PEM format (implies --ssl).
  --ssl-cipher=name   SSL cipher to use (implies --ssl).
  --ssl-key=name      X509 key in PEM format (implies --ssl).
                      Verify server's "Common Name" in its cert against
                      hostname used when connecting. This option is disabled by
  -t, --table         Output in table format.
  --tee=name          Append everything into outfile. See interactive help (\h)
                      also. Does not work in batch mode. Disable with
                      --disable-tee. This option is disabled by default.
  -u, --user=name     User for login if not current user.
  -U, --safe-updates  Only allow UPDATE and DELETE that uses keys.
  -U, --i-am-a-dummy  Synonym for option --safe-updates, -U.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.
  --connect-timeout=# Number of seconds before connection timeout.
                      The maximum packet length to send to or receive from
                      The buffer size for TCP/IP and socket communication.
  --select-limit=#    Automatic limit for SELECT when using --safe-updates.
  --max-join-size=#   Automatic limit for rows in a join when using
  --secure-auth       Refuse client connecting to server if it uses old
                      (pre-4.1.1) protocol.
  --server-arg=name   Send embedded server this as a parameter.
  --show-warnings     Show warnings after every statement.
  --plugin-dir=name   Directory for client-side plugins.
  --default-auth=name Default authentication client-side plugin to use.

Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\M
ySQL Server 5.5\my.ini C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
auto-rehash                       TRUE
auto-vertical-output              FALSE
character-sets-dir                (No default value)
column-type-info                  FALSE
comments                          FALSE
compress                          FALSE
debug-check                       FALSE
debug-info                        FALSE
database                          (No default value)
default-character-set             auto
delimiter                         ;
enable-cleartext-plugin           FALSE
vertical                          FALSE
force                             FALSE
named-commands                    FALSE
ignore-spaces                     FALSE
init-command                      (No default value)
local-infile                      FALSE
no-beep                           FALSE
host                              localhost
html                              FALSE
xml                               FALSE
line-numbers                      TRUE
unbuffered                        FALSE
column-names                      TRUE
sigint-ignore                     FALSE
port                              0
prompt                            mysql>
quick                             FALSE
raw                               FALSE
reconnect                         FALSE
shared-memory-base-name           (No default value)
socket                            (No default value)
ssl                               FALSE
ssl-ca                            (No default value)
ssl-capath                        (No default value)

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.

thanks. please check my reply.

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)

This question has already been answered. Start a new discussion instead.