сценарий mysqldump не резервируется в этом сценарии - PullRequest
0 голосов
/ 03 августа 2011
:: 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 */;

Ответы [ 3 ]

0 голосов
/ 03 августа 2011

Посмотрите, как работает скрипт:

pushd "E:\mysqlbackup"

Это изменит ваш текущий каталог на E:\mysqlbackup.Затем вы перебираете все подкаталоги в E:\mysqlbackup с помощью

FOR /D %%F IN (*) DO (

, однако, учитывая ваш вывод дампа, скорее всего, ЕДИНСТВЕННАЯ вещь в E:\mysqlbackup - это другой подкаталог с именем backupfiles.Если у вас нет базы данных с именем «backupfiles», она никогда ничего не будет выгружать.

Чтобы это работало, вы должны вручную создать подкаталог для КАЖДОЙ базы данных, которую вы хотите выгрузить, прежде чем запускать этот скрипт.В противном случае сценарий не имеет способа определить, какие у вас базы данных, и будет только когда-либо создавать дамп несуществующей базы данных «backupfiles».

0 голосов
/ 20 февраля 2014

Это:

pushd "E: \ mysqlbackup"

Должно быть изменено на:

pushd "C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ data"

или любую версию и папку, в которой находится папка данных Mysql.

0 голосов
/ 03 августа 2011

Проверьте дамп:

-- Host: localhost    Database: backupfiles

Похоже, вы неправильно передаете имена базы данных.Я думаю, что-то не так с циклом, вызывающим mysqldump, но я не имею понятия о пакетных файлах Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...