Доступ к mysqldump запрещен
Когда я пытаюсь выполнить резервное копирование с помощью mysqldump из ssh,
Я запустил следующую команду на машине 10.64.1.1. Он дает следующую ошибку.
mysqldump --user=test -p=password --host=10.64.1.2 --tab=. databasename tablename
mysqldump: Got error: 1045: Access denied for user 'test'@'10.64.1.1' (using password: YES)
при попытке подключения
Однако я могу получить доступ к mysql с использованием того же пользователя и пароля.
mysql --user=test -p[password]
Текущий пользователь: [email protected]
SSL: Not in use
Текущий пейджер: stdout
Использование outfile: ''
Использование разделителя: ;
Версия сервера: 5.0.91-50-log Percona SQL Server, Revision 73 (GPL)
Версия протокола: 10
Соединение: 10.64.1.2 via TCP/IP
Обновление:
Если я следую за документом mysql: --password[=password]
или -p[password]
.
Поскольку мой пароль содержит специальный символ @
, Mysql не может правильно определить пользователя. Он жалуется:
mysqldump: Got error: 1044: Access denied for user 'test'@'%' to database
Ответы
Ответ 1
Я думаю, что вам придется потерять = при использовании -p или сделать это с помощью пароля:
- пароль [= пароль], -p [пароль]
Пароль, используемый при подключении к сервер. Если вы используете короткий (-p), вы не можете иметь пространство между опцией и пароль. Если вы опустите пароль значение после пароля -password или -p в командной строке, вы подсказал один. Указание пароль в командной строке должен быть считается небезопасным. См. Раздел 6.6, "Сохранение пароля".
Ответ 2
Вы должны запустить CMD.EXE в качестве администратора:
Щелкните правой кнопкой мыши на cmd.exe → Запуск от имени администратора и введите команду:
mysqldump -u [имя_пользователя] -p [пароль] -h [ip или имя] yourdatabasename > c:\sqlfile.sql
Он должен работать нормально.
Ответ 3
Я знаю, что тема очень старая, но у меня была такая же проблема. Я понял, что проблема была только специальным символом, используемым в пароле. На самом деле они должны быть экранированы с помощью анти-косой черты: --password=123\@456
или с использованием кодовых слов --password='[email protected]'
Ответ 4
У меня была такая же проблема с пользователем БД, созданным через Plesk. У пользователя есть разрешения для одной базы данных. Если я укажу имя базы данных, я получаю указанную выше ошибку. Если я укажу -A
для всех баз данных, дамп будет работать.
Ответ 5
В Windows я разрешил его, создав каталог, а затем сбросив файл *.sql в каталог резервных копий.
C:\backup
Нет проблем с командами:
Удалите квадратные скобки []
mysqldump -u[username] -p[password] -h[ip] yourdb > C:\backup\sqlfile.sql
Это сработало для меня:)
Ответ 6
Еще одна возможная причина может быть местом, в котором вы пытаетесь создать дамп.
Написание mysqldump -u[username] -p yourdb > D:\backup\sqlfile.sql
вместо mysqldump -u[username] -p yourdb > sqlfile.sql
разрешило мою проблему.
Ответ 7
Для параметров подключения нет =
(знак равенства). Вы хотите следующее.
mysqldump -u test -ppassword -h 10.64.1.2 ...
Обратитесь к документам для получения более подробной информации о других параметрах.
Ответ 8
Вот что работает для моей командной строки как admin.
не помещайте пароль после -p, вам автоматически предлагается ввести пароль, и он работает.
Ответ 9
Если ошибка отказа в доступе произошла, просто запустите CMD как администратор. Он должен работать правильно!
Ответ 10
Попытка с этой командой
mysqldump --user=root -p --host=127.0.0.1 --databases database_name [database_name_2,...] > dump.sql