mysqldump

1) export  整个 db,

1) 导出数据 mysqldump -u root -p  -t db> file

# mysqldump -u root -p   -t test> order.sql

2) 导出schemal mysqldump -u root -p  -d db > file

mysqldump --opt -d  test -u root -p  > order.sql

3)  数据and schemal

[root@yun01 ~]# mysqldump  -u root -p test > test.sql


2) export 单个 table,多个table 

1) 导出表

导出单个数据表结构(不包含数据)
mysqldump -hlocalhost -uroot -p -d test person orders >order.sql

2) 导出表和数据

mysqldump -u root -p testdb order acticle person > testdb.sql


导入表,或数据

二、导入数据库
1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

建议使用第二种方法导入。

注意:有命令行模式,有sql命令


### 使用 `mysqldump` 进行 MySQL 数据库备份的方法 `mysqldump` 是 MySQL 提供的一个非常强大的命令行工具,用于导出数据库内容并生成 SQL 文件。它不仅可以备份单个数据库,还可以同时备份多个数据库或整个 MySQL 服务器的所有数据。 #### 备份单个数据库 要备份一个特定的数据库,可以使用以下命令: ```bash mysqldump -u[用户名] -p [目标数据库名] > [备份文件全路径] ``` 例如,如果用户名为 `root`,要备份名为 `dbname` 的数据库,并将备份文件保存到 `/backup/mysqldump/dbname.db`,则命令如下: ```bash mysqldump -uroot -p dbname > /backup/mysqldump/dbname.db ``` 该命令会在提示输入密码后执行备份操作[^1]。 #### 备份多个数据库 如果需要同时备份多个数据库,可以使用 `--databases` 参数指定多个数据库名称: ```bash mysqldump -u[用户名] -p --databases [数据库名1] [数据库名2] > [备份文件全路径] ``` 例如,备份 `menagerie` 和 `todos` 两个数据库: ```bash mysqldump -uroot -p --databases menagerie todos > menagerie_todos.dump ``` 这种方式可以一次性导出多个数据库的数据[^2]。 #### 备份所有数据库 如果希望备份整个 MySQL 服务器上的所有数据库,可以使用 `--all-databases` 参数: ```bash mysqldump -u[用户名] -p --all-databases > [备份文件全路径] ``` 例如: ```bash mysqldump -uroot -p --all-databases > all.dump ``` 此命令将创建一个包含所有数据库和表结构及其数据的备份文件[^3]。 #### 备份远程数据库 当需要备份远程服务器上的数据库时,可以通过 `-h` 参数指定主机名或 IP 地址: ```bash mysqldump -h[主机名] -u[用户名] -p[密码] [数据库名] > [备份文件全路径] ``` 例如: ```bash mysqldump -hexample.com -uusername -ppassword databasename > backupfile.sql ``` 这种方式适用于远程服务器的数据库备份[^3]。 #### 仅备份数据库结构 如果只需要备份数据库的结构而不包括数据,可以使用 `--no-data` 参数: ```bash mysqldump --no-data --databases [数据库名1] [数据库名2] > [结构备份文件全路径] ``` 例如: ```bash mysqldump --no-data --databases databasename1 databasename2 > structurebackupfile.sql ``` 此命令将仅导出表结构,而不包含任何数据[^3]。 #### 压缩备份 为了节省存储空间,可以在备份时直接将输出通过管道传递给 `gzip` 进行压缩: ```bash mysqldump -u[用户名] -p [数据库名] | gzip > [压缩备份文件全路径] ``` 例如: ```bash mysqldump -uroot -p dbname | gzip > /backup/dbname.sql.gz ``` 这样生成的备份文件将以 `.gz` 格式存储,便于后续恢复和传输[^3]。 #### 添加删除表语句的备份 在某些情况下,可能希望在恢复备份时自动删除已存在的表。为此,可以使用 `--add-drop-table` 参数: ```bash mysqldump --add-drop-table -u[用户名] -p [数据库名] > [带删除语句的备份文件全路径] ``` 例如: ```bash mysqldump --add-drop-table -uroot -p dbname > dbname_with_drop.sql ``` 该命令会在每个 `CREATE TABLE` 语句前添加 `DROP TABLE IF EXISTS` 语句,确保恢复时不会出现表冲突[^3]。 #### 恢复数据库 恢复数据库可以通过以下两种方式之一完成: 1. **使用重定向恢复** ```bash mysql -u[用户名] -p [数据库名] < [备份文件全路径] ``` 例如: ```bash mysql -uroot -p dbname < dbname.db ``` 2. **使用 `source` 命令恢复** ```bash mysql -uroot -p -e "source [备份文件全路径]" [数据库名] ``` 例如: ```bash mysql -uroot -p -e "source dbname.db" dbname ``` 这两种方法都可以有效地将备份文件中的 SQL 内容重新导入到数据库中。 #### 恢复压缩备份 如果备份文件是经过压缩的 `.gz` 文件,则需要先解压再恢复: ```bash gunzip < [压缩备份文件全路径] | mysql -u[用户名] -p [数据库名] ``` 例如: ```bash gunzip < dbname.sql.gz | mysql -uroot -p dbname ``` 该命令会先解压备份文件,然后将其内容导入指定的数据库中。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值