使用mysqldump 备份mysql数据库示例
Linux mysqldump命令是MySQL客户端用于备份MySQL/MariaDB数据库。
通常mysqldump命令用来将mysql数据库导出为文本文件作为备份,但它有几个其他选项。
例如,我们可以使用mysqldump命令从一个数据库到另一个数据库的表备份表,或者我们可以将数据库从一个mysql服务器备份到另一个数据库。
mysqldump命令选项
两个最重要的命令选项是-p(密码)和-u(username)选项。
--password [= password],-p [password]
-p选项用于指定连接到MySQL/MariaDB服务器时要使用的密码。
mysqldump -p'password' database_name > backup-file-name
或者
mysqldump --password=password database > backup-file-name
如果在命令行上省略-p选项后面的密码值,请提示密码。
--user = user_name,-u user_name
备份数据库时要使用的MySQL用户名。
选项-u是可选的,如果我们未使用-u选项,MySqldump将使用Linux用户名作为MySQL用户名。
mysqldump -p'password' -u username database > backup-file-name
备份单个数据库
mysqldump命令的最常见用法是将单个数据库备份到文本文件。
mysqldump -p'password' -u username database > backup-file-name
例子
mysqldump -u root -p example_database > example_database.sql
如上例,MySQLDUMP命令将example_database备份到example_database.sql文件。
我们使用root作为用户名连接到MySQL服务器。
备份多个数据库
命令选项--databases用于指定要备份的多个数据库。
mysqldump -p'password' --databases database1 database2 database3 > database_backup.sql
上面的示例将备份所有三个数据库到Database_Backup.sql文件。
备份所有数据库
我们可以使用--all-databases选项来备份MySQL/MariaDB服务器中的所有数据库。
例子
mysqldump -p'password' --all-databases > all_databases.sql
上面的示例将备份MySQL Server中的所有数据库到all_databases.sql文件。
从数据库备份一个或者多个表
我们还可以指定我们想要导出的表,而不是备份整个MySQL数据库。
为此,我们在数据库名称后指定一个或者多个表名。
例子
mysqldump -p example_database table1 table2 > example_database.sql
根据上面的示例,MySqldump命令将备份“example_database”数据库的“table1”和“table2”。
从MySqldump排除特定表格
转储数据库时,可以使用-ignore-table选项来排除特定表。
必须使用数据库和表名称指定表的名称。
例子
mysqldump -p --ignore-table=example_db.table1 example_db > example_db.sql
要忽略多个表,请多次使用--ignore-table选项。
mysqldump -p --ignore-table=example_db.table1 --ignore-table=example_db.table2 example_db > example_db.sql
来自远程MySQL Server的备份数据库
我们可以使用-h选项mysqldump命令从远程MySQL服务器备份数据库。
例子
mysqldump -p -u username -h 192.168.1.20 example_db > example_db.sql
MySQLDUMP命令将从位于192.168.1.20的MySQL Server备份example_db。
备份数据库到另一个数据库
我们可以通过将mysqldump的输出管道向MySQL命令将MySQL数据库备份到另一个数据库来备份MySQL数据库。
例1
mysqldump -p'password' database1 | mysql -p'password' database2
根据上面的示例,Database1将备份到数据库2.
例2.
mysqldump -p'password' database1 table1 table2 | mysql -p'password' database2
根据上面的示例,Database1的Table1和Table2将备份到数据库2.
备份mysql数据库到另一个MySQL服务器
我们可以使用-h选项mysql命令将不同的mysql服务器指定为备份目标。
例子
mysqldump -p'password' database1 | mysql -p'password' -u username -h 192.168.1.20 database1
根据上面的示例,本地MySQL Server的Database1将备份到位于192.168.1.20的MySQL服务器的数据库1.