Зберігайте пароль клієнта 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.