Как мне войти в базу данных без имени пользователя и пароля? [закрыто]

Я хочу войти в базу данных, запустив файл SQL из сценария UNIX без указания имени пользователя и пароля (как root). Есть какая-нибудь команда для этого?

3
задан 16 April 2014 в 18:56

2 ответа

Вы можете сохранить имя пользователя и пароль в ~ / .my.cnf

[mysql]
user=foo
password=bar

Но этот файл не зашифрован, так что будьте осторожны.

0
ответ дан 16 April 2014 в 18:56

Многие клиентские программы, включая mysql, могут получать пароли из командной строки. Попробуйте

mysql -u root -pROOT_PASSWORD DATABASE_NAME

Где ROOT_PASSWORD - пароль для учетной записи root mysql. Вы также можете использовать сертификаты для входа в систему.

Поскольку существует некоторая путаница, по крайней мере последние версии mysql маскируют ваш пароль из списка процессов. Вы можете проверить это, выполнив вышеупомянутую команду, а затем в другом терминале

ps auxw | grep mysql

Если вы видите что-то вроде

mysql -u root -px xxxxx

(где -px xxxxx именно это, а не ваш пароль), тогда ваш пароль не будет отображаться в списке процессов.


Соображения безопасности:

  • Как упомянуто в комментариях @Lekensteyn, имейте в виду, что выполняемые вами команды будут сохранены в файле истории (доступном для чтения только пользователю и root). Вы можете предотвратить это, например, сбросив переменную HISTFILE.
  • Ваш сценарий должен быть защищен с правильными разрешениями (например, 700, то есть все разрешения для владельца и ничего для других).
0
ответ дан 16 April 2014 в 18:56

Другие вопросы по тегам:

Похожие вопросы: