2012-04-24 2 views
3

Когда я запускаю следующую команду из командной оболочки Windows (Win7), она отлично работает, и резервная копия записывается в мою файловую систему. База данных MySQL находится на удаленном сервере Linux.mysqldump - Доступ запрещен для пользователя

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump" -h *******.com -u ******* -p***** --databases ******* > "C:\******\_Database\backups\DB_%date:~0,3%.bak" 

Но когда я ставлю ту же команду в пакетный файл (whatever.bat) и запустить файл летучая мышь (с помощью команды «паузы» в конце), я получаю ошибку «Ошибка Got: 1045: Доступ запрещен для пользователя 'me' @ 'c-24-2-64-138.hsd1.ut.comcast.net' (используя пароль: ДА) при попытке подключения ".

Почему это работает из командной оболочки open, но не при запуске из файла bat? Как я могу сделать эту работу?

ответ

6

Вам следует избегать пароля, используя одинарные кавычки: -p'password'.

Правильная команда будет:

"mysqldump" -h *******.com -u ******* -p'*****' --databases ******* > "C:\******\_Database\backups\DB_%date:~0,3%.bak" 
0

Вы попробовали --user=**** --password=****?

Я помню, что у меня возникли некоторые проблемы с получением mysqldump, чтобы забрать имя пользователя и пароль в скриптах и ​​обнаружил, что этот параметр работал. Извините, но я боюсь, что не могу вспомнить больше о том, какие проблемы были или что вызвало их ...

+0

Наложение: Я пробовал ваше предложение, но я все равно получаю ту же ошибку. Любые другие идеи? – HerrimanCoder

+0

Кроме того, «==» не работает, работает только один знак равенства. – HerrimanCoder

+0

@SweatCoder - извинения, опечатка с моей стороны - исправлены соответственно. Рад, что вы его работали. – amaidment

1

Хорошо, я понял эту раздражающую вещь. Проблема была в моем пароле: 4 $ 5% 6 ^^ 7^& deZeYPdx5014VB3C#

Когда я сменил этот пароль, все сработало. Некоторые персонажи там разворачивают выполнение пакетного файла Windows. Я подозреваю, что это знак%, но трудно понять. Должна быть ошибка в окнах, учитывая, что она отлично работает с командной оболочкой, но не в файле bat-файла или cmd-файле.

+1

Здесь нет «ошибки». Некоторые символы имеют особое значение в пакетных файлах (так же, как и любой другой язык программирования/сценариев), чтобы обеспечить различные виды программируемости. –

+0

При указании в сценарии BASH с использованием подстановки параметра этот параметр должен быть заключен в кавычки SINGLE, чтобы предотвратить дополнительную оценку строки, содержащей комбинацию символов и букв (здесь проблема $). – PrplHaz4

3

У меня возникла аналогичная проблема. У меня есть 4 базы данных, все из которых отлично работают. Пятый не будет делать резервные копии независимо от того, с каким пользователем я попытался - даже root. Оказывается, символ^в пароле был для меня проблемой. Как только я изменил пароль пользователей, чтобы включить! а не^все работало немедленно.

+0

Как указывали другие, включение пароля в кавычки помогло мне (я сохранил пароль в файле my.cnf). – jFrenetic

0

Следующая работал для меня, ранее пароль был не принят, так пробовал без кавычек вокруг пароля ...

Вот что я mysqldump -h localhost -u имя_пользователя -ppassword --databases имя_данных> "C: \ backups \ dbbkup.% DATE:/=%. bak"

Смежные вопросы