mysqldump - пароль действительно делают то, что он говорит?

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
34
задан OMG Ponies 26 April 2011 в 23:37
поделиться

10 ответов

От человека mysqldump:

- пароль [=password],-p [пароль]

пароль для использования при соединении с сервером. При использовании короткой формы опции (-p) у Вас не может быть пространства между опцией и паролем. При исключении значения пароля после - пароль или-p опция на командной строке Вам предлагают одного.
Определение пароля на командной строке нужно считать небезопасным. Посмотрите Раздел 6.6, "Сохранив Ваш Пароль Безопасным".

Синтаксически, Вы не используете - переключатель пароля правильно. По сути, синтаксический анализатор командной строки видит, что Ваше использование "проигрывает" как автономный аргумент, который mysqldump интерпретирует как имя базы данных, как это было бы, если необходимо было делать попытку более простой команды как mysqldump lose

Для исправления этого, попытайтесь использовать --password=lose или -plose или просто используйте -p или --password и введите пароль, когда запрошено.

79
ответ дан mahemoff 27 November 2019 в 16:04
поделиться

Другая опция состоит в том, чтобы создать файл ~/.my.cnf (полномочия должны быть 600).

Добавляют это к .my.cnf файлу

[client]
password=lose

, который Это позволяет Вам соединить как пользователь MySQL, который требует пароля, не имея необходимость на самом деле вводить пароль. Вам даже не нужен-p или - пароль.

Очень удобный для сценариев mysql & команды mysqldump.

13
ответ дан Mark Biek 27 November 2019 в 16:04
поделиться

Я не уверен, работает ли это на - версия пароля, но если Вы используете,-p можно определить пароль сразу впоследствии (ключ не должен включать пространство):

mysqldump-pmypassword...

3
ответ дан nathan 27 November 2019 в 16:04
поделиться

Попытайтесь поместить '=' промежуточный - пароль проигрывает как:

--password=lose

при использовании-p, тогда не может быть никакого пространства между-p и паролем, т.е. '-plose'.

3
ответ дан Steve Baker 27 November 2019 в 16:04
поделиться

Вы пробовали - password=whatever-password-is?

, Возможно, я пропускаю вопрос, но именно это я делаю для выполнения инструмента.

2
ответ дан itsmatt 27 November 2019 в 16:04
поделиться

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

, Если Вы хотите указать на пароль на командной строке, необходимо использовать-pYOURPASSWORD или - password=YOURPASSWORD. Заметьте, что нет никакого пространства после-p, и существует "=" знак после - пароль.

В Вашем примере, mysqldump просит пароль, и затем рассматривает, "проигрывают" как имя базы данных. Если это было Вашим паролем, необходимо было включать "="

1
ответ дан Giuseppe Maxia 27 November 2019 в 16:04
поделиться

-p опция не требует аргумента. Вы просто помещаете-p или - пароль, чтобы указать, что Вы собираетесь использовать пароль для доступа к базе данных. Причина это выводит базу данных, названную независимо от того, что Вы помещаете после-p, состоит в том, что последним аргументом в пользу mysqldump должно быть название базы данных, которую Вы хотите вывести (или - все-базы данных, если Вы хотите их всех).

ответ @Nathan также верен. Можно сразу определить пароль после переключателя-p (полезный в сценариях и таком, где Вы не можете ввести его вручную после выполнения команды).

0
ответ дан Justin Bennett 27 November 2019 в 16:04
поделиться

- пароль [=password]

Здесь документация

0
ответ дан Patrick Desjardins 27 November 2019 в 16:04
поделиться

Возможно, у Вашего пользователя "тест" нет разрешения получить доступ к Вашему "терять" базу данных?

-2
ответ дан Giuda 27 November 2019 в 16:04
поделиться

Я обнаружил, что это происходит, если в вашем пароле есть специальные символы. Пароль mysql здесь имеет! в нем, поэтому мне нужно сделать == password = 'xxx! xxxx', чтобы он работал правильно. Обратите внимание на знаки.

9
ответ дан 27 November 2019 в 16:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: