Есть ли способ передать пароль пользователя БД в инструмент командной строки mysqladmin?

104

В настоящее время я использую следующее, но он ВСЕГДА предлагает мне ввести пароль вручную. Есть ли способ передать его в командной строке при запуске исполняемого файла?

mysqladmin processlist -u root -p
Итан Аллен
источник
4
Установите MYSQL_PWD в среде ( export MYSQL_PWD=muhpassword) и выполните команду без расширения -p. См. Переменные программной среды MySQL . Несмотря на ужасные предупреждения в руководстве , это довольно безопасно . Если только вы не запустите странный варез в той же оболочке, которая может скопировать вашу среду и отправить ее на darkaspirator.cc.
Дэвид Тонхофер 01

Ответы:

192

Только что узнал ответ ....

mysqladmin processlist -u root -pYOURPASSWORDHERE

Между вашим паролем и -p нет пробелов

Итан Аллен
источник
14
кавычки также разрешены, если пароль содержит пробелы, например:-p'YOURPASSWORD HERE'
Vigintas Labakojis
42
Вау ... по-настоящему интуитивно понятно ... Пробел между -h localhostи, -u rootно нет -pPASSWORD. Классические программисты делают все сложнее, чем необходимо.
Каньон Колоб,
4
@KolobCanyon, вы можете опустить пробел между -u и root, -urootработает нормально
Питер Айтай,
11
Предупреждение: это считается небезопасным: dev.mysql.com/doc/mysql-security-excerpt/5.7/en/…
neverendingqs
3
@KolobCanyon: Что делать, если ваш пароль начинается с пробела? ;) Программист не может решить, разделяет ли пробел опцию и ее значение, или это первый символ пароля…
Стефан
44

Пытаться:

--password=PasswordTextHere 
ge0man
источник
Полезно, когда вам нужно передать «пустой» пароль (конечно, в целях тестирования).
Иво Перейра
похоже, это единственный вариант для передачи пустого пароля в командной строке (например, в песочнице)
penCsharpener
10

Это должно работать: mysql -uroot -p'password'

Если вы пытаетесь автоматизировать решение mysql, вы можете использовать пароль из переменной:

mysql_pass=$(sudo grep -oP "temporary password is generated for root@localhost: \K(.*)" /var/log/mysqld.log)

mysql -uroot -p"$mysql_pass" < somescript.sql

3лвиназ
источник