MySQL 中 mysqldump 數據庫導出命令行工具

前言

通常在開發過程中,Mysql 數據庫的備份都是使用工具。但其實這些工具調用的仍舊是Mysql中自帶的mysqldump 工具命令。
所以在linux中不安裝UI界面組件的情況下,使用命令行纔是王道。

命令格式

$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

看命令格式的話,還是比較簡單的。
那麼核心就是OPTIONS 這個參數,不同的參數會導致不同的結果。那繼續看一下OPTIONS的參數有哪些。

OPTIONS

摘自Mysql 官方文檔

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#mysqldump-option-summary

Option Name Description Introduced
–add-drop-database Add DROP DATABASE statement before each CREATE DATABASE statement
–add-drop-table Add DROP TABLE statement before each CREATE TABLE statement
–add-drop-trigger Add DROP TRIGGER statement before each CREATE TRIGGER statement
–add-locks Surround each table dump with LOCK TABLES and UNLOCK TABLES statements
–all-databases Dump all tables in all databases
–allow-keywords Allow creation of column names that are keywords
–apply-slave-statements Include STOP SLAVE prior to CHANGE MASTER statement and START SLAVE at end of output
–bind-address Use specified network interface to connect to MySQL Server
–character-sets-dir Directory where character sets are installed
–column-statistics Write ANALYZE TABLE statements to generate statistics histograms
–comments Add comments to dump file
–compact Produce more compact output
–compatible Produce output that is more compatible with other database systems or with older MySQL servers
–complete-insert Use complete INSERT statements that include column names
–compress Compress all information sent between client and server 8.0.18
–compression-algorithms Permitted compression algorithms for connections to server 8.0.18
–create-options Include all MySQL-specific table options in CREATE TABLE statements
–databases Interpret all name arguments as database names
–debug Write debugging log
–debug-check Print debugging information when program exits
–debug-info Print debugging information, memory, and CPU statistics when program exits
–default-auth Authentication plugin to use
–default-character-set Specify default character set
–defaults-extra-file Read named option file in addition to usual option files
–defaults-file Read only named option file
–defaults-group-suffix Option group suffix value
–delete-master-logs On a master replication server, delete the binary logs after performing the dump operation
–disable-keys For each table, surround INSERT statements with statements to disable and enable keys
–dump-date Include dump date as “Dump completed on” comment if –comments is given
–dump-slave Include CHANGE MASTER statement that lists binary log coordinates of slave’s master
–enable-cleartext-plugin Enable cleartext authentication plugin
–events Dump events from dumped databases
–extended-insert Use multiple-row INSERT syntax
–fields-enclosed-by This option is used with the –tab option and has the same meaning as the corresponding clause for LOAD DATA
–fields-escaped-by This option is used with the –tab option and has the same meaning as the corresponding clause for LOAD DATA
–fields-optionally-enclosed-by This option is used with the –tab option and has the same meaning as the corresponding clause for LOAD DATA
–fields-terminated-by This option is used with the –tab option and has the same meaning as the corresponding clause for LOAD DATA
–flush-logs Flush MySQL server log files before starting dump
–flush-privileges Emit a FLUSH PRIVILEGES statement after dumping mysql database
–force Continue even if an SQL error occurs during a table dump
–get-server-public-key Request RSA public key from server
–help Display help message and exit
–hex-blob Dump binary columns using hexadecimal notation
–host Host on which MySQL server is located
–ignore-error Ignore specified errors
–ignore-table Do not dump given table
–include-master-host-port Include MASTER_HOST/MASTER_PORT options in CHANGE MASTER statement produced with –dump-slave
–insert-ignore Write INSERT IGNORE rather than INSERT statements
–lines-terminated-by This option is used with the –tab option and has the same meaning as the corresponding clause for LOAD DATA
–lock-all-tables Lock all tables across all databases
–lock-tables Lock all tables before dumping them
–log-error Append warnings and errors to named file
–login-path Read login path options from .mylogin.cnf
–master-data Write the binary log file name and position to the output
–max-allowed-packet Maximum packet length to send to or receive from server
–net-buffer-length Buffer size for TCP/IP and socket communication
–network-timeout Increase network timeouts to permit larger table dumps
–no-autocommit Enclose the INSERT statements for each dumped table within SET autocommit = 0 and COMMIT statements
–no-create-db Do not write CREATE DATABASE statements
–no-create-info Do not write CREATE TABLE statements that re-create each dumped table
–no-data Do not dump table contents
–no-defaults Read no option files
–no-set-names Same as –skip-set-charset
–no-tablespaces Do not write any CREATE LOGFILE GROUP or CREATE TABLESPACE statements in output
–opt Shorthand for --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset
–order-by-primary Dump each table’s rows sorted by its primary key, or by its first unique index
–password Password to use when connecting to server
–pipe Connect to server using named pipe (Windows only)
–plugin-dir Directory where plugins are installed
–port TCP/IP port number for connection
–print-defaults Print default options
–protocol Connection protocol to use
–quick Retrieve rows for a table from the server a row at a time
–quote-names Quote identifiers within backtick characters
–replace Write REPLACE statements rather than INSERT statements
–result-file Direct output to a given file
–routines Dump stored routines (procedures and functions) from dumped databases
–server-public-key-path Path name to file containing RSA public key
–set-charset Add SET NAMES default_character_set to output
–set-gtid-purged Whether to add SET @@GLOBAL.GTID_PURGED to output
–shared-memory-base-name Name of shared memory to use for shared-memory connections
–show-create-skip-secondary-engine Exclude SECONDARY ENGINE clause from CREATE TABLE statements 8.0.18
–single-transaction Issue a BEGIN SQL statement before dumping data from server
–skip-add-drop-table Do not add a DROP TABLE statement before each CREATE TABLE statement
–skip-add-locks Do not add locks
–skip-comments Do not add comments to dump file
–skip-compact Do not produce more compact output
–skip-disable-keys Do not disable keys
–skip-extended-insert Turn off extended-insert
–skip-opt Turn off options set by –opt
–skip-quick Do not retrieve rows for a table from the server a row at a time
–skip-quote-names Do not quote identifiers
–skip-set-charset Do not write SET NAMES statement
–skip-triggers Do not dump triggers
–skip-tz-utc Turn off tz-utc
–socket Unix socket file or Windows named pipe to use
–ssl-ca File that contains list of trusted SSL Certificate Authorities
–ssl-capath Directory that contains trusted SSL Certificate Authority certificate files
–ssl-cert File that contains X.509 certificate
–ssl-cipher Permissible ciphers for connection encryption
–ssl-crl File that contains certificate revocation lists
–ssl-crlpath Directory that contains certificate revocation-list files
–ssl-fips-mode Whether to enable FIPS mode on client side
–ssl-key File that contains X.509 key
–ssl-mode Desired security state of connection to server
–tab Produce tab-separated data files
–tables Override –databases or -B option
–tls-ciphersuites Permissible TLSv1.3 ciphersuites for encrypted connections 8.0.16
–tls-version Permissible TLS protocols for encrypted connections
–triggers Dump triggers for each dumped table
–tz-utc Add SET TIME_ZONE=’+00:00’ to dump file
–user MySQL user name to use when connecting to server
–verbose Verbose mode
–version Display version information and exit
–where Dump only rows selected by given WHERE condition
–xml Produce XML output
–zstd-compression-level Compression level for connections to server that use zstd compression 8.0.18

常用命令格式

備份全部數據庫

$ mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db

備份指定數據庫

$ mysqldump -uroot -p test > /backup/mysqldump/test.db

備份指定數據庫中的指定表(多個表用空格間隔)

$ mysqldump -uroot -p  mysql db event > /backup/mysqldump/2table.db

還原數據庫

系統行命令

$ mysqladmin -uroot -p create db_name 
$ mysql -uroot -p  db_name < /backup/mysqldump/db_name.db

soure 方法

$ mysql > use db_name
$ mysql > source /backup/mysqldump/db_name.db
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章