Я використовую клієнт командного рядка mysql, і мені не хочеться вводити пароль щоразу, коли запускаю клієнта. Які мої варіанти?
Я використовую клієнт командного рядка mysql, і мені не хочеться вводити пароль щоразу, коли запускаю клієнта. Які мої варіанти?
Відповіді:
Створіть .my.cnf
у своєму домашньому каталозі файл, названий таким чином. Переконайтеся, що права доступу до файлової системи встановлені таким чином, що читати їх може лише користувач (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Оскільки ви також позначили своє запитання mysqldump, вам слід переглянути це питання.
Використання mysqldump у роботі cron без пароля root
Оновлення (2016-06-29) Якщо у вас запущено mysql 5.6.6 або новішої версії, слід переглянути інструмент mysql_config_editor , який дозволяє зберігати облікові дані у зашифрованому файлі. Дякую Джованні за те, що мені це згадали.
Ви можете використовувати цю mysql_config_editor
утиліту для зберігання облікових даних для автентифікації у зашифрованому файлі шляху входу з назвою .mylogin.cnf
.
Щоб створити новий набір облікових даних, виконайте такі дії:
mysql_config_editor set --host=db.host.org --user=dbuser --password
і введіть свій пароль, коли буде запропоновано.
Це збереже ваші дані автентифікації у client
шляху входу за замовчуванням .
Ви можете зберігати кілька облікових даних автентифікації, вказавши інший --login-path
варіант:
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
За замовчуванням mysql
клієнт зчитує [client]
і [mysql]
групи з інших файлів опцій, тому також читає їх з файлу шляху входу. За допомогою --login-path
опції, клієнтські програми додатково читають названий шлях входу з файлу шляху входу. Групи опцій, які читаються з інших файлів опцій, залишаються незмінними. Розглянемо цю команду:
mysql --login-path=db2
mysql
Клієнт читає [client]
і [mysql]
з інших файлів опцій, а також [client]
, [mysql]
і [mypath]
з файлу Логін шляху.
Щоб роздрукувати всю інформацію, що зберігається у файлі конфігурації:
mysql_config_editor print --all=true
Більш детальну інформацію про утиліту можна знайти на "mysql_config_editor - Утиліта конфігурації MySQL" .
Ми не повинні робити вигляд, що .mylogin.cnf захищений взагалі, оскільки я можу використовувати, my_print_defaults -s [use your login-path]
щоб цей пароль відображався у простому тексті. Ось чому MariaDB не підтримує цей підхід «безпека через неясність».
Існує інший спосіб, ортогональний для вищезазначених методів, але це може бути ризиком для безпеки, якщо хтось інший дивиться ваш монітор, АБО якщо ви зберігаєте свою історію .
Тим не менш, це варіант, який не дозволить вам запросити, і той, який я використовую для викидання зображень докера тощо.
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Вам не буде запропоновано, ви можете встановити тимчасовий псевдонім в оболонці, якщо бажаєте.
Використовуйте обережно.
mysql Ver 14.14 Distrib 5.5.61-38.13, для debian-linux-gnu (x86_64), використовуючи readline 5.1