Коли я спробував запустити наступну команду на MySQL з терміналу:
mysql -u $user -p$password -e "statement"
Виконання працює як очікувалося, але воно завжди видає попередження:
Попередження: Використання пароля в інтерфейсі командного рядка може бути небезпечним.
Однак я повинен вести заяву вище, використовуючи змінну середовища ( $password
), яка зберігає мій пароль, тому що я хочу запускати команду ітеративно в bash-скрипті з терміналу, і мені точно не подобається ідея чекати швидкого відображення і змушує мене вводити свій пароль 50 або 100 разів в одному сценарії. Тож ось моє запитання:
Чи можливо придушити попередження? Команда працює належним чином, як я вже заявив, але вікно стає досить безладним, коли я перекидаю та запускаю команду 50 або 100 разів.
Чи слід дотримуватися попереджувального повідомлення та НЕ писати свій пароль у своєму сценарії? Якщо це так, то чи потрібно мені вводити свій пароль щоразу, коли підказка змушує мене це зробити?
Біг man mysql
не допомагає, кажучи лише
--show-warnings
Причини попередження відображатись після кожного твердження, якщо вони є. Ця опція застосовується до інтерактивного та пакетного режимів.
і нічого не згадує про те, як відключити функціональність, якщо я щось не пропускаю.
Я перебуваю на OS X 10.9.1 Mavericks і використовую MySQL 5.6 від домашньої мови.
pexcept
. Він може робити термінальні вставки, а також обробляти відгуки, які дає команда. Таким чином ви можете просто пропустити цей багатослівний вихід і смужку фактичного виводу, який ви хочете :)
[client]
password=my_password
in~/.my.cnf
). Звичайно, це має і певні наслідки для безпеки, але принаймні це не доступно для всіх, хто може працюватиps
, і ви маєте контроль над ним за допомогою дозволів на файли.