Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
От человека mysqldump:
- пароль [=password],-p [пароль]
пароль для использования при соединении с сервером. При использовании короткой формы опции (-p) у Вас не может быть пространства между опцией и паролем. При исключении значения пароля после - пароль или-p опция на командной строке Вам предлагают одного.
Определение пароля на командной строке нужно считать небезопасным. Посмотрите Раздел 6.6, "Сохранив Ваш Пароль Безопасным".
Синтаксически, Вы не используете - переключатель пароля правильно. По сути, синтаксический анализатор командной строки видит, что Ваше использование "проигрывает" как автономный аргумент, который mysqldump интерпретирует как имя базы данных, как это было бы, если необходимо было делать попытку более простой команды как mysqldump lose
Для исправления этого, попытайтесь использовать --password=lose
или -plose
или просто используйте -p
или --password
и введите пароль, когда запрошено.
Другая опция состоит в том, чтобы создать файл ~/.my.cnf (полномочия должны быть 600).
Добавляют это к .my.cnf файлу
[client]
password=lose
, который Это позволяет Вам соединить как пользователь MySQL, который требует пароля, не имея необходимость на самом деле вводить пароль. Вам даже не нужен-p или - пароль.
Очень удобный для сценариев mysql & команды mysqldump.
Я не уверен, работает ли это на - версия пароля, но если Вы используете,-p можно определить пароль сразу впоследствии (ключ не должен включать пространство):
mysqldump-pmypassword...
Попытайтесь поместить '=' промежуточный - пароль проигрывает как:
--password=lose
при использовании-p, тогда не может быть никакого пространства между-p и паролем, т.е. '-plose'.
Вы пробовали - password=whatever-password-is?
, Возможно, я пропускаю вопрос, но именно это я делаю для выполнения инструмента.
При использовании-p или - пароль без аргумента Вы получите подсказку, прося вставлять пароль.
, Если Вы хотите указать на пароль на командной строке, необходимо использовать-pYOURPASSWORD или - password=YOURPASSWORD. Заметьте, что нет никакого пространства после-p, и существует "=" знак после - пароль.
В Вашем примере, mysqldump просит пароль, и затем рассматривает, "проигрывают" как имя базы данных. Если это было Вашим паролем, необходимо было включать "="
-p опция не требует аргумента. Вы просто помещаете-p или - пароль, чтобы указать, что Вы собираетесь использовать пароль для доступа к базе данных. Причина это выводит базу данных, названную независимо от того, что Вы помещаете после-p, состоит в том, что последним аргументом в пользу mysqldump должно быть название базы данных, которую Вы хотите вывести (или - все-базы данных, если Вы хотите их всех).
ответ @Nathan также верен. Можно сразу определить пароль после переключателя-p (полезный в сценариях и таком, где Вы не можете ввести его вручную после выполнения команды).
- пароль [=password]
Здесь документация
Возможно, у Вашего пользователя "тест" нет разрешения получить доступ к Вашему "терять" базу данных?
Я обнаружил, что это происходит, если в вашем пароле есть специальные символы. Пароль mysql здесь имеет! в нем, поэтому мне нужно сделать == password = 'xxx! xxxx', чтобы он работал правильно. Обратите внимание на знаки.