Mysqldump, source data backup and Restoration Methods

Source: Internet
Author: User
Tags localhost mysql mysql backup
This article introduces mysql's mysqldump and source commands for data backup and restoration. If you need them, please refer to this article.

This article introduces mysql's mysqldump and source commands for data backup and restoration. If you need them, please refer to this article.

Restore A database:

The Code is as follows:
Mysql-h localhost-u root-p123456 www

Back up a database:

The Code is as follows:
Mysqldump-h localhost-u root-p123456 www> d:/www2008-2-26. SQL

Local:
1. Enter the bin folder in the MySQL Directory: e: Press ENTER;

E:> cd mysqlbin press ENTER

2. Export Database: mysqldump-u username-p Database Name> exported file name

The Code is as follows:
Mysqldump-uroot-p abc> abc. SQL

(Export the database abc to the abc. SQL file)
When prompted to enter the password, enter the password of the database user name (if you export a single table, enter the table name after the database name)

If a locktable error is prompted, add -- skip-lock-tables to the blank space behind mysqldump-uroot-p abc.

3. The file news. SQL is automatically generated under the binfile.


MySQL backup and restoration in Linux
2.1 backup

The Code is as follows:
[Root @ localhost ~] # Cd/var/lib/mysql (go to the MySQL database directory and adjust the directory based on your MySQL installation)
[Root @ localhost mysql] # mysqldump-u root-p voice> voice. SQL. Enter the password.

2.2 restore

The Code is as follows:
Method 1:
[Root @ localhost ~] # Mysql-u root-p press enter and enter the password to go To the MySQL console "mysql>", which is restored in the same way as 1.2.
Method 2:
[Root @ localhost ~] # Cd/var/lib/mysql (go to the MySQL database directory and adjust the directory based on your MySQL installation)
[Root @ localhost mysql] # mysql-u root-p voice


Common commands


Command for backing up MySQL database
Mysqldump-hhostname-uusername-ppassword databasename> backupfile. SQL

Back up the MySQL database in the format of a table with deletion
Backing up a MySQL database is in the format of a table with deletion, so that the backup can overwrite existing databases without the need to manually delete the original database.

The Code is as follows:
Mysqldump -- add-drop-table-uusername-ppassword databasename> backupfile. SQL

Directly compress and back up the MySQL database

The Code is as follows:
Mysqldump-hhostname-uusername-ppassword databasename | gzip> backupfile. SQL .gz

Back up a MySQL database table

The Code is as follows:
Mysqldump-hhostname-uusername-ppassword databasename specific_table1 specific_table2> backupfile. SQL

Back up multiple MySQL databases at the same time

The Code is as follows:
Mysqldump-hhostname-uusername-ppassword-databases databasename1 databasename2 databasename3> multibackupfile. SQL

Back up database structures only

The Code is as follows:
Mysqldump-no-data-databases databasename1 databasename2 databasename3> structurebackupfile. SQL

Back up all databases on the server

The Code is as follows:
Mysqldump-all-databases> allbackupfile. SQL

Command for restoring MySQL database

The Code is as follows:
Mysql-hhostname-uusername-ppassword databasename

Restore a compressed MySQL database
Gunzip

Transfer database to new server

The Code is as follows:
Mysqldump-uusername-ppassword databasename | mysql-host = *. *-C databasename

1. mysqldump

1.1 backup

Mysqldump adopts an SQL-level backup mechanism. It imports data tables into SQL script files and is suitable for upgrading between different MySQL versions. This is also the most common backup method.
Here are some main parameters of mysqldump:

-- Compatible = name

It tells mysqldump that the exported data will be compatible with the database or the old MySQL server. The values can be ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_tables_options, and no_field_options. Separate them with commas. Of course, it does not guarantee full compatibility, but is as compatible as possible.

-- Complete-insert,-c

The exported data adopts the complete INSERT method containing the field name, that is, all values are written in one row. This can improve the insertion efficiency, but may be affected by the max_allowed_packet parameter, resulting in insertion failure. Therefore, you need to use this parameter with caution. At least I do not recommend this parameter.

-- Default-character-set = charset

Specifies the character set used for data export. If the data table does not use the default latin1 character set, this option must be specified during data export. Otherwise, garbled characters will occur after data is imported again.

-- Disable-keys

Tell mysqldump to add/* at the beginning and end of the INSERT statement /*! 40000 alter table table disable keys */; And /*! 40000 alter table table enable keys */; Statement, which greatly improves the speed of the insert statement because it re-creates the index after all data is inserted. This option is only applicable to MyISAM tables.

-- Extended-insert = true | false

By default, mysqldump enables the -- complete-insert mode, so if you do not want to use it, use this option to set its value to false.

-- Hex-blob

Export binary string fields in hexadecimal format. This option is required if binary data exists. The affected field types include BINARY, VARBINARY, and BLOB.

-- Lock-all-tables,-x

Before starting the export, submit a request to lock all tables in all databases to ensure data consistency. This is a global read lock and the -- single-transaction and -- lock-tables options are automatically disabled.

-- Lock-tables

It is similar to -- lock-all-tables, but instead of locking all tables in the database. This option is only applicable to MyISAM tables. For Innodb tables, you can use the -- single-transaction option.

-- No-create-info,-t

Only export data without adding the create table statement.

-- No-data,-d

Only the database table structure is exported without exporting any data.

-- Opt

This is just a quick option, it is equivalent to adding the -- add-drop-tables -- add-locking -- create-option -- disable-keys -- extended-insert -- lock-tables -- quick -- set-charset option at the same time. This option allows mysqldump to export data quickly and export data back quickly. This option is enabled by default, but can be disabled with -- skip-opt. Note: If the -- quick or -- opt option is not specified when running mysqldump, the entire result set is stored in the memory. If you export a large database, problems may occur.

-- Quick,-q

This option is useful when exporting large tables. It forces mysqldump to retrieve records from the Server query and output them directly instead of caching all records into the memory.

-- Routines,-R

Export stored procedures and user-defined functions.

-- Single-transaction

This option submits a begin SQL statement before exporting data. BEGIN does not block any applications and ensures Database Consistency during export. It is only applicable to transaction tables, such as InnoDB and BDB.
This option and the -- lock-tables option are mutually exclusive, Because lock tables will implicitly commit any pending transactions.
To export a large table, use the -- quick option.

-- Triggers

Export the trigger at the same time. This option is enabled by default. Use -- skip-triggers to disable it.

For details about other parameters, see the manual. I usually use the following SQL to back up the MyISAM table:

The Code is as follows:

/Usr/local/mysql/bin/mysqldump-uyejr-pyejr
-- Default-character-set = utf8 -- opt -- extended-insert = false
-- Triggers-R -- hex-blob-x db_name> db_name. SQL

Use the following SQL to back up the Innodb table:

The Code is as follows:

/Usr/local/mysql/bin/mysqldump-uyejr-pyejr
-- Default-character-set = utf8 -- opt -- extended-insert = false
-- Triggers-R -- hex-blob -- single-transaction db_name> db_name. SQL

In addition, if you want to implement online backup, you can also use the -- master-data parameter, as shown below:

The Code is as follows:

/Usr/local/mysql/bin/mysqldump-uyejr-pyejr
-- Default-character-set = utf8 -- opt -- master-data = 1
-- Single-transaction -- flush-logs db_name> db_name. SQL

It only requests the lock table at the beginning, then refreshes the binlog, and then adds the change master statement to the exported file to specify the binlog location of the current backup, if you want to restore the file to slave, you can use this method.

1.2 restore

Use SOURCE syntax

In fact, this is not a standard SQL syntax, but a function provided by the mysql client, for example:

The Code is as follows:

SOURCE/tmp/db_name. SQL;

The absolute path of the file must be specified here, and the file must be read by the mysqld running user (such as nobody ).

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.