我是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的文件。
任何人都可以帮助我吗?
答案 0 :(得分:6)
尝试以下命令,将“your_password”替换为root密码:
mysqldump --user=root --password=your_password --all-databases >"a:\mysql\all_databases.sql"
答案 1 :(得分:2)
即使它是一个旧线程:)对于包括用户在内的完整备份,访问权限(如我的情况)performance_schema,functions,routines&触发器,你根本不需要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中删除old / data文件夹并替换为备份中的旧文件夹。
存在一个小缺点......如果您忘记了root密码(就像我一样),您也将无法恢复数据库。
这就是全部。