Когда я попытался запустить следующую команду на 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 от homebrew.
pexcept
. Он может выполнять терминальные вставки, а также обрабатывать обратную связь, которую дает команда. Таким образом, вы можете просто пропустить этот подробный вывод и
[client]
password=my_password
в~/.my.cnf
). Конечно, это также имеет некоторые последствия для безопасности, но, по крайней мере, оно не доступно для всех, кто может работатьps
, и вы можете управлять им с помощью прав доступа к файлам.