数据备份与导入

 在MySQL中进行数据备份的方法有两种,

     一种是使用mysqldump程序

        C:\mysql\bin\mysqldump  -uroot   -p   --opt   databasename>C:\databasename.sql  
        --opt选项还可激活--add-drop-table选项,它将会在备份文件的每条CREATE TABLE前加上一条DROP TABLE IF EXISTS语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。   

         mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。

   

     一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件

 

设置客户端编码 set names ‘gbk’

  导入数据 source d:\test.sql;  (注意分割符)


 

### 备份方法 #### mysqldump 备份 - **导出指定库**:使用 `mysqldump -u[用户名] -p[数据库名] > [备份文件名].sql` 命令可将指定数据库的所有结构数据导出为 SQL 脚本。例如,数据库名为 `mydatabase`,用户名为 `root`,使用 `mysqldump -uroot -p mydatabase > mydatabase_backup.sql` 命令,运行后输入密码即可完成导出 [^2]。 - **导出多个指定库**:使用 `mysqldump -u[用户名] -p --databases [数据库名1] [数据库名2] ... > [备份文件名].sql` 命令可导出多个指定数据库的数据。 - **导出单个表**:使用 `mysqldump -u[用户名] -p [数据库名] [表名] > [备份文件名].sql` 命令可导出指定数据库中单个表的数据。例如,`mysqldump -uroot -p mydatabase mytable > mytable_backup.sql` [^2]。 - **仅导出表结构**:使用 `mysqldump -u[用户名] -p --no-data [数据库名] > [备份文件名].sql` 命令可仅导出指定数据库的表结构。例如,`mysqldump -uroot -p --no-data mydatabase > mydatabase_structure.sql` [^2]。 - **仅导出表数据**:使用 `mysqldump -u[用户名] -p --no-create-info [数据库名] [表名] > [备份文件名].sql` 命令可仅导出指定表的数据。 #### 物理冷备份 关闭 MySQL 数据库,使用 `tar` 命令直接打包数据库文件夹,可直接替换现有 MySQL 目录。示例命令如下: ```bash systemctl stop mysqld cd /usr/local/mysql/ tar zcf /opt/mysql_backup_$(date +%Y%m%d) data/ ``` 这种备份方法的优点是恢复速度快,因为不需要执行 SQL 语句来恢复数据。缺点是备份文件可能很大,并且在恢复时需要确保数据目录的权限配置正确 [^1][^2]。 #### 全量备份 使用 `mysqldump --all-databases --master-data=2 --flush-logs --single-transaction > 备份文件全路径 -p 密码` 命令可进行全量备份 [^3]。 ### 导入方法 #### 使用 `mysql` 命令导入 使用 `mysql -u[用户名] -p [数据库名] < [备份文件名].sql` 命令可将备份SQL 文件导入到指定数据库中。例如,将 `mydatabase_backup.sql` 文件导入到 `mydatabase` 数据库中,可使用以下命令: ```bash mysql -uroot -p mydatabase < mydatabase_backup.sql ``` #### Docker 部署的 MySQL 容器数据备份导入 假设 MySQL 容器名为 `dsms_mysql5.7`,用户名为 `root`,密码为 `123456`,数据库名为 `demo`,备份 SQL 文件为 `backup.sql`,可通过以下命令实现 MySQL 数据库脚本的备份导入: ```bash # MySQL 备份数据 docker exec dsms_mysql5.7 mysqldump -u root -p123456 demo > backup.sql # MySQL 导入数据 docker exec -i dsms_mysql5.7 mysql -u root -p123456 demo < backup.sql ``` 也可以添加 `-it` 选项,允许容器的终端进行交互,用于观察备份的过程或在执行期间输入其他命令 [^5]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值