Я пытаюсь использовать mysqldump
для выгрузки схемы, и она в основном работает, но я столкнулся с одним любопытством: опция -p
или --password
кажется, что она делает что-то иное, чем установка пароля (как страница man
и вывод --help
говорят, что должны).
В частности, похоже, что он делает то, что указано здесь: http://snippets.dzone.com/posts/show/360 - то есть установка базы данных для дампа.
Чтобы поддержать мое несколько странное утверждение, я могу вам сказать, что если я не укажу опцию --password
(или -p
), команда напечатает инструкцию использования и завершит работу с ошибкой. Если я его укажу, мне сразу же будет предложено ввести пароль (!), А затем база данных, указанная в параметре --password
, будет сброшена (или в обычном случае выдается сообщение о том, что пароль, не совпадающий с именем базы данных, указано).
Вот расшифровка:
$ mysqldump -u test -h myhost --no-data --tables --password lose
Enter password:
-- MySQL dump 10.10
mysqldump: Got error: 1044: Access denied for user 'test'@'%' to
database 'lose' when selecting the database
Итак, что дает? Это так, как это должно работать? Это, безусловно, не имеет смысла и не соответствует официальной документации. И, наконец, если это так, как это работает, как я должен указать пароль, который будет использоваться в автоматизированной работе? Использование expect
???
Я использую mysqldump Ver 10.10 Distrib 5.0.22, for pc-linux-gnu (i486)
.