企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 一、mysqldump备份 #### 1. mysqldump的三种语法格式 ``` mysqldump [options] db_name [tbl_name ...] mysqldump [options] --databases db_name ... mysqldump [options] --all-databases ``` 示例 ``` mysqldump -uroot -p -h192.168.103.31 -d u_learning_report > u_learning_report.sql ``` - -u: 用户名 - -p: 密码(回车后输入,避免密码泄漏) - -h: 数据库地址(不带端口) - -d:只导出表结构 - u_learning_report:数据库的名称 #### 2. mysqldump常用的options的值 选项名称|描述|默认值 --|--|-- --add-drop-database|在每个 CREATE DATABASE 语句之前添加 DROP DATABASE 语句| false --add-drop-table|在每个 CREATE TABLE 语句之前添加 DROP TABLE 语句| true --add-locks|用 LOCK TABLES 和 UNLOCK TABLES 语句包围每个表转储|true --all-databases|转储所有数据库中的所有表|false --allow-keywords|允许创建作为关键字的列名|false --compatible|生成与其他数据库系统或较旧的 MySQL 服务器更兼容的输出|(No default value) --complete-insert|使用包含列名的完整 INSERT 语句|false --compress|压缩客户端和服务器之间发送的所有信息|false --databases|指定数据库名称|false --default-character-set|指定默认字符集|utf8 --help|显示帮助信息|(No default value) --host|MySQL 服务器所在的主机|localhost --insert-ignore|编写 INSERT IGNORE 而不是 INSERT 语句|false --lock-all-tables|锁定所有数据库中的所有表|false --lock-tables|在转储之前锁定所有表|true --no-create-db|不要写 CREATE DATABASE 语句 --no-data|不要转储表格内容|false --password|数据库密码 --port|端口|0 --replace|编写 REPLACE 语句而不是 INSERT 语句|false --skip-add-drop-table|不要在每个 CREATE TABLE 语句之前添加 DROP TABLE 语句 --skip-add-locks|不要加锁 --tables|覆盖 --databases 或 -B 选项 --user|连接到服务器时使用的 MySQL 用户名 ##### 连接选项 - --bind-address=ip_address 在具有多个网络接口的计算机上,使用此选项选择用于连接 MySQL 服务器的接口。 - --host=host_name, -h host_name 从给定主机上的 MySQL 服务器转储数据。默认主机是localhost. - --port=port_num, -P port_num 对于 TCP/IP 连接,要使用的端口号。 - --password[=password], -p[password] 用于连接到服务器的 MySQL 帐户的密码。密码值是可选的。如果没有给出, mysqldump会提示输入一个。如果给定,则或 和后面的密码之间 不能有空格。如果未指定密码选项,则默认为不发送密码。 --password=-p 在命令行上指定密码应该被认为是不安全的。为避免在命令行上提供密码,请使用选项文件。请参见 第 6.1.2.1 节,“密码安全的最终用户指南”。 要明确指定没有密码并且mysqldump不应提示输入密码 ,请使用该 --skip-password 选项。 ##### DDL 选项 - --add-drop-database DROP DATABASE 在每个CREATE DATABASE语句之前 写一个语句。此选项通常与--all-databasesor --databases选项结合使用, 因为CREATE DATABASE除非指定了这些选项之一,否则不会编写任何语句。 - --add-drop-table DROP TABLE在每个CREATE TABLE 语句之前 写一个语句。 - --user=user_name, -u user_name 用于连接到服务器的 MySQL 帐户的用户名。 #### 例子 要备份整个数据库: ``` mysqldump db_name > backup-file.sql ``` 要将转储文件加载回服务器: ``` mysql db_name < backup-file.sql ``` mysqldump对于通过将数据从一个 MySQL 服务器复制到另一个来填充数据库也非常有用: ``` mysqldump --opt db_name | mysql --host=remote_host -C db_name ``` 您可以使用一个命令转储多个数据库: ``` mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql ``` 要转储所有数据库,请使用以下 --all-databases选项: ``` mysqldump --all-databases > all_databases.sql ```