Buonasera a tutti, su un server Windows Server 2008 ho un problema con il backup dei database presenti su MySQL 5.1.68
Per effettuare il backup ho schedulato in piccolo batch:
Il problema è questo, alcuni database me li backuppa e altri no..codice:@echo off:: Set some variables set backupdir="o:\databasebck" set mysqldir="C:\Program Files\MySQL\MySQL Server 5.1" set mysqldatadir="C:\ProgramData\MySQL\MySQL Server 5.1\data" set logdir="C:\ProgramData\MySQL\MySQL Server 5.1\Log" set dbuser=xxx set dbpass=xxx rem set zip="ENTER_VALUE_HERE" rem set mailer="ENTER_VALUE_HERE" rem set to="ENTER_VALUE_HERE" rem set from="ENTER_VALUE_HERE" rem set server="ENTER_VALUE_HERE" set endtime=0 :DODIR :: Do DIR of backupdir to establish network DIR %backupdir% :GETTIME :: get the date and then parse it into variables for /F "tokens=2-4 delims=/ " %%i in ('date /t') do ( set mm=%%i set dd=%%j set yy=%%k ) :: get the time and then parse it into variables for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do ( set hh=%%i set ii=%%j set ss=%%k ) :: If this is the second time through then go to the end of the file if "%endtime%"=="1" goto END :: Create the filename suffix set fn=_%dd%-%mm%-%yy%_%hh%-%mm%-%ss% :: Switch to the data directory to enumerate the folders pushd %mysqldatadir% :: Write to the log file echo Beginning mysqldump Process > %logdir%\MySQL_LOG%fn%.txt echo Start Time = %yy%-%mm%-%dd% %hh%:%ii%:%ss% >> %logdir%\MySQL_LOG%fn%.txt echo --------------------------- >> %logdir%\MySQL_LOG%fn%.txt echo. >> %logdir%\MySQL_LOG%fn%.txt :: Loop through the data structure in the data dir to get the database names for /d %%f in (*) do ( :: Create the backup sub-directory is it does not exist if not exist %backupdir%\%%f\ ( echo Making Directory %%f echo Making Directory %%f >> %logdir%\MySQL_LOG%fn%.txt mkdir %backupdir%\%%f ) else ( echo Directory %%f Exists echo Directory %%f Exists >> %logdir%\MySQL_LOG%fn%.txt ) :: Run mysqldump on each database and compress the data by piping through gZip rem echo Backing up database %%f%fn%.sql.gz rem echo Backing up database %%f%fn%.sql.gz >> %logdir%\MySQL_LOG%fn%.txt %mysqldir%\bin\mysqldump.exe --user=%dbuser% --password=%dbpass% --databases %%f --opt --quote-names --allow-keywords --complete-insert > %backupdir%\%%f\%%f%fn%.sql rem echo Done... rem echo Done... >> %logdir%\MySQL_LOG%fn%.txt ) :: Write to the log file echo. >> %logdir%\MySQL_LOG%fn%.txt echo --------------------------- >> %logdir%\MySQL_LOG%fn%.txt echo Analyzing, optimising and repairing databases echo Analyzing, optimising and repairing databases >> %logdir%\MySQL_LOG%fn%.txt %mysqldir%\bin\mysqlcheck.exe --all-databases --medium-check --auto-repair --force --use-frm --optimize --analyze --check-only-changed --user=%dbuser% --password=%dbpass% echo Done... echo Done... >> %logdir%\MySQL_LOG%fn%.txt :: Go back and get the end time for the script set endtime=1 goto :GETTIME :END :: Write to the log file echo. >> %logdir%\MySQL_LOG%fn%.txt echo --------------------------- >> %logdir%\MySQL_LOG%fn%.txt echo MySQLDump Process Finished >> %logdir%\MySQL_LOG%fn%.txt echo End Time = %yy%-%mm%-%dd% %hh%:%ii%:%ss% >> %logdir%\MySQL_LOG%fn%.txt echo. >> %logdir%\MySQL_LOG%fn%.txt :: Return to the scripts dir popd :: Send the log file in an e-mail rem %mailer%\blat.exe %logdir%\MySQL_LOG%fn%.txt -to %to% -f %from% -server %server% rem EXIT
Presumo che il problema sia nel nome del database stesso perché i db contenenti dei segni nei nomi non me li salva
L'errore è questo:
Il database si chiamerebbe database-testcodice:Making Directory database@002dtest mysqldump: Got error: 1049: Unknown database 'database@002dtest' when selecting the database
Come potrei risolvere?

Rispondi quotando