Есть ли способ передать пароль пользователя БД в инструмент командной строки 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 

Полезно, когда вам нужно передать «пустой» пароль (конечно, в целях тестирования).
Иво Перейра

похоже, это единственный вариант для передачи пустого пароля в командной строке (например, в песочнице)
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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.