首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysqldump.exe进行MySQL完整备份

使用mysqldump.exe进行MySQL完整备份
EN

Stack Overflow用户
提问于 2012-08-09 09:26:24
回答 2查看 8.8K关注 0票数 0
代码语言:javascript
复制
set dateStr=%date:~-7,2%-%date:~-10,2%-%date:~-4,4%
"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin\mysqldump.exe" -u user -p password --all-

databases  --single-transaction --flush-logs --master-data=2 > full_backup_%dateStr%.sql

它适用于我们拥有的另一台服务器。这是一个新服务器,但具有相同的数据库。它只创建一个包含以下内容的1 KB文件:

代码语言:javascript
复制
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2012-12-31 07:53:34

当我试图备份我自己的Mysql数据库时,我发现了这个问题,并认为我应该分享我是如何做到这一点的。

代码基本上遍历所有数据库,并创建一个.sql文件,其中包含每个数据库的所有结构和数据。

代码语言:javascript
复制
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: MySQL Backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: MySQl DB user
set dbuser=BackupUser

:: MySQl DB users password
set dbpass=BackUpUserPassWord

:: Switch to the MySQL data directory and collect the folder names
pushd "C:\Server\databases\mysql\data"

:: Loop through the folders and use the file names for the sql files, collects all databases automatically this way
:: Pass each name to mysqldump.exe and output an individual .sql file for each

FOR /D %%F IN (*) DO (
  "C:\Program Files\MySQL\bin\mysqldump.exe" --user=%dbuser% --password=%dbpass% --databases %%F > "C:\Server\backups\mysql\%%F.%TODAY%.sql"
)

要回答您的特定问题,请检查您是否以管理员身份运行该脚本,以及您尝试备份所使用的用户是否具有数据库的相关权限。我一直被这个问题困扰着,直到我以管理员身份运行我的bat文件。

要检查是否是用户问题,请尝试以root用户身份运行mysqldump,看看是否有帮助,如果有帮助,您就知道这是数据库权限的问题。

要以管理员身份运行,请右键单击bat文件,然后选择以管理员身份运行,并且不要忘记在计划任务中设置“以最高权限运行”复选框。

代码从此处复制:http://www.syntaxwarriors.com/2012/backup-up-a-windows-server-using-only-free-tools/

票数 1
EN

Stack Overflow用户

发布于 2012-08-09 23:49:11

我测试了你的代码,它起作用了。我认为你应该再检查一下你的bat文件,看看有没有语法错误。

代码语言:javascript
复制
set dateStr=%date:~-7,2%-%date:~-10,2%-%date:~-4,4%
"D:\Sync\Apps\Wamp\bin\mysql\mysql5.5.20\bin\mysqldump.exe" -u root --all-databases  --single-transaction --flush-logs --master-data=2 > full_backup_%dateStr%.sql

我删除了-pPASSWORD部件,因为我的本地服务器上没有超级用户的密码。因此,如果您打算从这里执行C/P操作,请不要忘记更改mysqldump的路径并添加-p部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11875548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档