网站首页引导页模版,财经资讯网站该怎么做推广,成都周边旅游景点大全,wordpress 文章浏览次数数据库的备份与还原
目录
引言备份 2.1 备份所有数据库2.2 备份单个数据库2.3 备份多个指定数据库 传输备份文件还原 4.1 还原所有数据库4.2 还原单个数据库4.3 还原多个指定数据库 注意事项拓展 1. 引言
在不同的操作系统间进行数据库迁移时#xff0c;命令行工具是我们的…数据库的备份与还原
目录
引言备份 2.1 备份所有数据库2.2 备份单个数据库2.3 备份多个指定数据库 传输备份文件还原 4.1 还原所有数据库4.2 还原单个数据库4.3 还原多个指定数据库 注意事项拓展 1. 引言
在不同的操作系统间进行数据库迁移时命令行工具是我们的可靠伙伴。它们高效且直观特别是在Windows系统下备份MySQL数据库并将其导入Linux系统时。
2. 备份
2.1 备份所有数据库
要将所有数据库打包保存请在Windows的命令提示符窗口注意不是PowerShell中执行以下命令
mysql -u root -p --all-databases D:\mysqlbak\all_databases.sql贴士 确保目录存在例如D:\mysqlbak。如果没有请先创建 mkdir D:\mysqlbak2.2 备份单个数据库
想要某个特定数据库轻松搞定
mysqldump -u root -p database_name D:\mysqlbak\database_name.sql例如保存my_database
mysqldump -u root -p my_database D:\mysqlbak\my_database.sql2.3 备份多个指定数据库
多数据库选择没问题用--databases把它们列出来
mysqldump -u root -p --databases db1 db2 db3 D:\mysqlbak\multiple_databases.sql3. 传输备份文件
使用XFTP或类似工具让备份文件游走于Windows和Linux之间确保它们完好无损地到达Linux如/home/user/mysqlbak/。
4. 还原
4.1 还原所有数据库
在Linux终端中前往备份文件目录敲下命令静待所有数据库重获新生
mysql -u root -p /home/user/mysqlbak/all_databases.sql没有报错对成功了。
4.2 还原单个数据库
如果只是单恋某个数据库
mysql -u root -p database_name /home/user/mysqlbak/database_name.sql比如还原你的my_database
mysql -u root -p my_database /home/user/mysqlbak/my_database.sql4.3 还原多个指定数据库
批量还原不是梦只需编写简单脚本如restore.sh
#!/bin/bash# 数据库名单
databases(db1 db2 db3)# 遍历并逐个恢复
for db in ${databases[]}; doecho Restoring $db...mysql -u root -p $db /home/user/mysqlbak/$db.sql
done保存并使其可执行
chmod x restore.sh
./restore.sh5. 注意事项
字符编码备份时选择统一的字符编码避免乱码横行。权限管理确保有权限操作Linux上的备份文件。防火墙配置若通过网络传输确保防火墙为所需端口打开绿灯。版本兼容性确保MySQL版本兼容在不同系统间保持和谐。
6. 拓展
6.1 使用压缩工具优化备份文件
压缩插件如gzip不仅节约空间还缩短传输时间
mysqldump -u root -p --all-databases | gzip D:\mysqlbak\all_databases.sql.gz在Linux上解压还原
gunzip /home/user/mysqlbak/all_databases.sql.gz | mysql -u root -p6.2 自动化备份和还原
用批处理和Shell脚本将这些任务交给机器
Windows批处理文件backup.bat
echo off
set backup_dirD:\mysqlbak
set date%date:~0,4%-%date:~5,2%-%date:~8,2%
set filenameall_databases_%date%.sql.gzmysqldump -u root -p --all-databases | gzip %backup_dir%\%filename%
echo Backup completed: %filename%Linux Shell脚本restore.sh
#!/bin/bashbackup_dir/home/user/mysqlbak
filenameall_databases_$(date %Y-%m-%d).sql.gzgunzip $backup_dir/$filename | mysql -u root -p
echo Restore completed: $filename6.3 使用云存储服务
将备份文件托管到云端如AWS S3不仅节省本地空间还增加存储的可靠性和安全性。