Зберігайте пароль клієнта MySQL або не встановлюйте пароль встановлення


11

Я використовую клієнт командного рядка mysql, і мені не хочеться вводити пароль щоразу, коли запускаю клієнта. Які мої варіанти?


Будь ласка, прийміть відповіді на деякі попередні запитання, оскільки, здається, кілька відповідей були правильними рішеннями - натисніть накреслений прапорець ліворуч від відповіді.
— Шейн Мадден

Відповіді:


15

Створіть .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 , який дозволяє зберігати облікові дані у зашифрованому файлі. Дякую Джованні за те, що мені це згадали.


Це чудово, що це спрацювало .. Тханку
— Поїздка

Якщо відповідь вирішила вашу проблему, тоді слід натиснути галочку, щоб прийняти її.
— Зоредаче

1
Це збереже пароль як звичайний текст - це практика, яку я не заважаю з точки зору безпеки.
— Джованні

@Giovanni впевнений, що незважаючи на те, що ви згадуєте у своїй відповіді mysql_config_editor, корисний не доступний, поки ви не запустите 5.6.6. Сьогодні існують дистрибутиви, які мають більш старі версії.
— Зоредаче

Але як це робиться в Windows?
— Wolfpack'08

9

Ви можете використовувати цю 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" .


2

Ми не повинні робити вигляд, що .mylogin.cnf захищений взагалі, оскільки я можу використовувати, my_print_defaults -s [use your login-path]щоб цей пароль відображався у простому тексті. Ось чому MariaDB не підтримує цей підхід «безпека через неясність».


Так що є відповідь на це питання тоді?
— Pierre.Vriens

0

Існує інший спосіб, ортогональний для вищезазначених методів, але це може бути ризиком для безпеки, якщо хтось інший дивиться ваш монітор, АБО якщо ви зберігаєте свою історію .

Тим не менш, це варіант, який не дозволить вам запросити, і той, який я використовую для викидання зображень докера тощо.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.