4

我是 MySQL 新手,但需要安排一个任务来自动备份我的数据库。

我已设法使用以下命令手动创建备份:-

mysqldump -u root -p --all-databases > "a:\mysql\all_databases.sql"

但是我无法弄清楚如何运行该命令,而无需手动输入我的密码。我努力了: -

mysqldump -u root -p'*my password*' --all-databases > "a:\mysql\all_databases.sql" 

似乎可以执行,但生成的文件只有 1kB 大小。而第一个命令生成一个 2661kB 的文件。

谁能帮我?

4

2 回答 2

6

尝试以下命令,将“your_password”替换为 root 密码:

mysqldump --user=root --password=your_password --all-databases >"a:\mysql\all_databases.sql"
于 2014-01-24T22:21:03.570 回答
2

即使它是一个旧线程 :) 对于包括用户、访问权限(如我的情况)、性能模式、函数、例程和触发器在内的完整备份,您根本不需要 mysqldump。

在您的机器上下载并安装 7zip。停止你的 mysql 服务器。打开命令提示符并使用它:

"C:\Program Files\7-Zip\7z.exe" a -t7z -mx9 -mhe -p<my_secure_password> "W:\backup_all_mysql_databases.7z" "W:\wamp\bin\mysql\mysql5.6.17\data"

对于未压缩的 186MB /data 文件夹,您将获得 170KB 的 7z 存档。您可以创建一个 BAT 文件以将当前日期时间附加到文件中。

恢复意味着从mysql中解压缩,删除旧的/data文件夹并替换为备份中的文件夹。

有一个小缺点...如果您忘记了 root 密码(像我一样),您也将无法使用数据库还原。

就这样。

于 2015-06-09T21:20:40.407 回答