The simplest MySql database backup method provided on the Internet
The simplest MySql database backup method provided on the Internet
Using MYSQL for database backup is also a regular database backup method. It has the same concept as other database servers, but have you ever thought about it, mySQL will have a simpler backup method using the file directory, and it will be faster and better.
I. Data Backup shortcuts
Because this method has not been verified in the official documentation, we call it a test.
Objective: To back up a mysql database TestA in the hostA host and restore it to the hostB host
Test environment:
Operating System: WinNT4.0, Mysql3.22.34, and phpMyAdmin 2.1.0
Install mysql database in hostA and create TestA Database
The mysql database is installed on the hostB machine, and there is no TestA Database
Procedure:
Start phpMyAdmin to check the database list in HostA and HostB. No TestA database exists in HostB.
Find the mysql installation directory in HostA, and find the database directory data
In my test environment, this directory is
C: mysqldata
Find the subdirectory of the corresponding database name
C: mysqldataTestA
Paste and copy the file to the Data directory of HostB, which is the same as the file in the Data directory of HostB Mysql.
Refresh the phpMyAdmin of HostB and check the database list. We can see that TestA has appeared, and the query and modification operations are normal. The Backup recovery is successful.
Test conclusion: Mysql databases can be stored in the form of files, backup, recovery as long as the corresponding file directory can be restored, no need to use other tools to back up.
Ii. Formal method (officially recommended ):
MySQL mysqldump is used for export. The basic usage is as follows:
Mysqldump [OPTIONS] database [tables]
If you do not specify any tables, the entire database will be exported.
Run mysqldump -- help to obtain the option table supported by your mysqldump version.
Note: If you run mysqldump without the -- quick or -- opt option, mysqldump loads the entire result set to the memory before the export result. If you are exporting a large database, this may be a problem.
Mysqldump supports the following options:
-- Add-locks
Add lock tables and unlock table before each TABLE is exported. (To make it faster to insert data to MySQL ).
-- Add-drop-table
Add a drop table before each create statement.
-- Allow-keywords
Names of columns allowed to be created as keywords. This is done by adding the table name before the column name.
-C, -- complete-insert
Use the complete insert Statement (with the column name ).
-C, -- compress
If both the client and server support compression, all information is compressed between the two.
-- Delayed
Use the insert delayed command to INSERT rows.
-E, -- extended-insert
Use the new multiline INSERT syntax. (A more compact and faster insert statement is provided)
-#, -- Debug [= option_string]
Tracking Program usage (for debugging ).
-- Help
Displays a help message and exits.
-- Fields-terminated-by =...
-- Fields-enclosed-by =...
-- Fields-optionally-enclosed-by =...
-- Fields-escaped-by =...
-- Fields-terminated-by =...
These options are used with-T options and have the same meaning as the load data infile clause.
Load data infile syntax.
-F, -- flush-logs
Wash Out the log files on the MySQL server before starting the export.
-F, -- force,
Even if we get an SQL error while exporting a table, continue.
-H, -- host = ..
Export data from the MySQL server on the named host. The default host is localhost.
-L, -- lock-tables.
Lock all tables for start export.
-T, -- no-create-info
Create table statement)
-D, -- no-data
No row information is written to the table. If you only want to export the structure of a table, this is very useful!
-- Opt
Same as -- quick -- add-drop-table -- add-locks -- extended-insert -- lock-tables.
You should be given the fastest export possible for reading a MySQL server.
-Pyour_pass, -- password [= your_pass]
The password used to connect to the server. If you do not specify "= your_pass", mysqldump requires a password from the terminal.
-P port_num, -- port = port_num
The TCP/IP Port used to connect to a host. (This is used to connect to a host other than localhost because it uses Unix sockets .)
-Q, -- quick
Directly export the data to stdout without buffering the query; Use mysql_use_result () to do it.
-S/path/to/socket, -- socket =/path/to/socket
The socket file used when connecting to localhost (which is the default host.
-T, -- tab = path-to-some-directory
For each given table, CREATE a table_name. SQL file that contains the SQL CREATE command and a table_name.txt file that contains data. Note: This only works when mysqldump runs on the same machine where the mysqld daemon is running .. The format of the txt file is determined by the options -- fields-xxx and -- lines -- xxx.
-U user_name, -- user = user_name
The username used by MySQL to connect to the server. The default value is your Unix login name.
-O var = option, -- set-variable var = option
Set the value of a variable. Possible variables are listed below.
-V, -- verbose
Lengthy mode. Print out more information about the program.
-V, -- version
Print the version information and exit.
-W, -- where = 'where-condition'
Only selected records are exported. Note that the quotation marks are mandatory!
"-- Where = user = 'jimf '"-wuserid> 1 ""-wuserid <1"
The most common use of mysqldump may make a backup of the entire database:
Mysqldump -- opt database> backup-file. SQL
However, it is also useful for enriching another MySQL database with information from one database:
Mysqldump -- opt database mysql -- host = remote-host-C database
Mysqldump exports complete SQL statements, so it is easy to import data into mysql client programs:
Mysqladmin create target_db_name
Mysql target_db_name <backup-file. SQL