:: MySQLBackup By Matt Moeller
:: RED OLIVE DESIGN INC.
SET backupdate=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%
:: MySQl DB user
set dbuser=dumpuser
:: MySQl DB users password
set dbpass=t5794
:: Switch to the MySQL data directory and collect the folder names
pushd "E:\mysqlbackup"
:: Loop through the folders and use the fnames for the sql filenames, collects all databases automatically this way
echo "hello"
echo "Pass each name to mysqldump.exe and output an individual .sql file for each"
FOR /D %%F IN (*) DO (
"C:\wamp\bin\mysql\mysql5.1.36\bin\mysqldump.exe" --user=%dbuser% --password=%dbpass% --databases %%F > "E:\mysqlbackup\backupfiles\%%F.%backupdate%.sql"
)
echo "All done, pretty slick eh"
这个代码它创建文件,但文件中有一些用于我在下面显示它如何修复它
-- MySQL dump 10.13 Distrib 5.1.36, for Win32 (ia32)
--
-- Host: localhost Database: backupfiles
-- ------------------------------------------------------
-- Server version 5.1.36-community-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
答案 0 :(得分:0)
检查转储:
-- Host: localhost Database: backupfiles
好像你没有正确传递数据库名称。我猜循环调用mysqldump有问题,但我不知道windows批处理文件。
答案 1 :(得分:0)
看看脚本是如何工作的:
pushd "E:\mysqlbackup"
这会将您当前的目录更改为E:\mysqlbackup
。然后使用
E:\mysqlbackup
中的所有子目录
FOR /D %%F IN (*) DO (
但是,根据您的转储输出,E:\mysqlbackup
中的唯一事情很可能是另一个名为backupfiles
的子目录。除非你有一个名为“backupfiles”的数据库,否则永远不会转储任何内容。
要使其正常工作,您必须在运行此脚本之前为要转储的每个数据库手动创建子目录。否则,脚本无法确定您的数据库是什么,并且只会创建不存在的“备份文件”数据库的转储。
答案 2 :(得分:0)
此:
pushd" E:\ mysqlbackup"
应改为:
pushd" C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ data"
或Mysql Data-folder所在的任何版本和文件夹。