I have a single .sql file which is 800MB in size and contains a few of databases including tables and datas.
The problem is, how to restore this kind of dump since there is no CREATE DATABASE syntax in the file?
I try mysql> -u root -p --all-database < c:\data.sql but no joy.
Conducted a backup of the following.
mysqldump -u xxx -p --all-database > c:\data.sql
Or, in the database unit
mysqldump -u xxx -p --databases db_name > c:\data.sql
Recovery in the following code.
mysql -u root -p < c:\data.sql
Related
I know how mysqldump works.
But dont know where to use it?
If I execute this command after starting mysql program then it says error.
I am using ubuntu. So how can I use this utility?
Backup your database this way too..
mysql -u root -p DB_NAME > db_name_backup.sql
If you want to backup all database simply run this
mysql -u root -p > mysql_db_backup.sql
You will learn more about mysql and mysqldump here..
Guide:
mysqldump and mysql
MySQL Database Backup using mysqldump
shell> mysqldump --opt db_name > backup-file.sql
You can read the dump file back into the server like this:
shell> mysql db_name < backup-file.sql
Or like this:
shell> mysql -e "source /path-to-backup/backup-file.sql" db_name
mysqldump is also very useful for populating databases by copying data
from one MySQL server to another:
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
It is possible to dump several databases with one command:
shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
If you want to dump all databases, use the --all-databases option:
shell> mysqldump --all-databases > all_databases.sql
If tables are stored in the InnoDB storage engine, mysqldump provides a
way of making an online backup of these (see command below). This
backup just needs to acquire a global read lock on all tables (using
FLUSH TABLES WITH READ LOCK) at the beginning of the dump. As soon as
this lock has been acquired, the binary log coordinates are read and
lock is released. So if and only if one long updating statement is
running when the FLUSH... is issued, the MySQL server may get stalled
until that long statement finishes, and then the dump becomes
lock-free. So if the MySQL server receives only short (in the sense of
"short execution time") updating statements, even if there are plenty
of them, the initial lock period should not be noticeable.
shell> mysqldump --all-databases --single-transaction > all_databases.sql
For point-in-time recovery (also known as “roll-forward”, when you need
to restore an old backup and replay the changes which happened since
that backup), it is often useful to rotate the binary log (see
Section 8.4, “The Binary Log”) or at least know the binary log
coordinates to which the dump corresponds:
shell> mysqldump --all-databases --master-data=2 > all_databases.sql
or
shell> mysqldump --all-databases --flush-logs --master-data=2 > all_databases.sql
The simultaneous use of --master-data and --single-transaction works as
of MySQL 4.1.8. It provides a convenient way to make an online backup
suitable for point-in-time recovery if tables are stored in the InnoDB
storage engine.
For more information on making backups, see Section 6.1, “Database
Backups”.
mysqldump -u MYSQL_USER -h MYSQL_SERVER -pMYSQL_PASS --all-databases > "dbs.sql"
You use it directly on the terminal, just like mysql it self, and pass the parameters directly to it.
mysqldump -u [user] -p[password] [database name] > dumpfilename.sql
yes you can.
see http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html for more information on the tool.
If it's an entire DB, then:
$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql
If it's all DBs, then:
$ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql
If it's specific tables within a DB, then:
$ mysqldump -u [uname] -p[pass] db_name table1 table2 >
table_backup.sql
You can even go as far as auto-compressing the output using gzip (if your DB is very big):
$ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz
If you want to do this remotely and you have the access to the server in question, then the following would work (presuming the MySQL server is on port 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name >
db_backup.sql
To IMPORT:
ype the following command to import sql data file:
$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql
In this example, import 'data.sql' file into 'blog' database using vivek as username:
$ mysql -u sat -p -h localhost blog < data.sql
If you have a dedicated database server, replace localhost hostname with with actual server name or IP address as follows:
$ mysql -u username -p -h 202.54.1.10 databasename < data.sql
OR use hostname such as mysql.cyberciti.biz
$ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql
If you do not know the database name or database name is included in sql dump you can try out something as follows:
$ mysql -u username -p -h 202.54.1.10 < data.sql
REfer: http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
i want to move mysql database tables which resides in one computer to another computer. how can i create dump file as we created in Oracle ?
i m using exp command but not working.
Use mysqldump.
mysqldump -u <username> -p<password> <db_name> > <filename>.sql
To import, create empty database named <db_name>, thena -
mysql -u <username> -p<password> <db_name> < <filename>.sql
To export all databases -
mysqldump -u <username> -p<password> --all-databases > <filename>.sql
mysqldump -u <username> -p<password> -h <hostname> <dbname> <tablename> > filename.sql
Now you may need to take the dump of just the schema. For example you use a command called like.
mysql> show create table tablename;
this will give you the query that created the table. Now for some reason you need to take schema dump of all the tables inside you database/databases you may use -d option like this
mysqldump -d -u <username> -p<password> -h <hostname> <dbname> > filename.sql
The -d option means "without data".
Now you have full dump without the data and just the schema.
Does anybody have an example on how to dump all databases uses mysql dump? And possible all a new file for each DB?
I'm using the follow command:
mysqldump -u root -p pw --all-databases > backup.sql;
It's returning with "You have an error in your SQL sytax";
Thanks!
There is an error in your command, it should be no space after -p,
like
mysqldump -u root -ppw --all-databases > backup.sql;
I not sure how many database you have, usually you can do this :-
mysqldump -u root -ppw db_a > db_a.sql;
mysqldump -u root -ppw db_b > db_b.sql;
...
... for all the databases
I have dumped my database with the following command:
mysqldump -uuser -ppassword db_name > file
then I completely removed my database:
drop database db_name;
then I created a new database:
create database db_name;
and then I tried to restore the db with the following command:
mysqldump -uuser -ppassword db_name < file
The problem is that dump does not create tables and loads data in them and so the database remains empty however it does show a message like dump completed "date time"
What could be the reason for this?
mysqldump is for dumping the database. You've created a new empty database, and then dumped that empty database. Use mysql instead to reload your dump
mysqldump db > dump.sql
mysql drop/create
mysql db < dump.sql
would be the basic command sequence.
I like to do the following to restore.
mysql -uuser -ppassword
create database db;
use db;
source dump.sql;
I tried dump of my database with the following commands:
#mysqldump -u <username> -p <password> DB_name > <filename>.sql
Then login into the DB:
#mysql -u <username> -p <password>
>show databases;
>drop database <DB_name>;
Then create a new database:
#create database <DB_name>;
DB_name is userdefined name we can have any name.
and then restore the DB with the following command:
#mysql -u <username> -p <password> DB_name < <filename>.sql
following is the that I create dump from mysql database.
mysqldump -u root tempbkk > ttt.dump
but I want to create a dump that exclude one or more file while creating dump from database we select.What is the command for that ?
mysqldump -u user -p some_database > some_database_dump.sql
mysqldump can skip tables, you need the --ignore-table parameter. Check out the manual of mysqldump.
mysqldump -u <user> -p<password> --databases <dbname> -r <NameofBackup.sql>
Simply type this command mysqldump -u user -p database_name_in_database > name_of_file.sql
it will ask password for user. and there you go, your dumb file is ready. on same the location from where you run the command