2015-05-28 2 views
1

В настоящее время я запускаю mysql через bash. Однако он возвращает ошибку:Предупреждение пароля Mysql в скрипте bash

Using a password on the command line interface can be insecure. 

Какими безопасными способами это удается? Как я могу правильно вызвать mysql без этого предупреждения?

#!/bin/bash/ 
user=test 
password=test 
database=test 

mysql --user='$user' --password='$password' --database='$database' --execute='DROP DATABASE $user; CREATE DATABASE $database;' 

Результат

Warning: Using a password on the command line interface can be insecure. 
+0

Где вы используете переменную 'ffmpeg_path'? – Barmar

+0

Я не думаю, что ошибка имеет какое-либо отношение к пользователю переменной. – Barmar

+0

@Barmar Спасибо, я внес необходимые изменения. –

ответ

2

Команда command открывает сеанс mysql, передавая в качестве аргумента пароль mysql (я вижу это сообщение десятым в день).

+0

О да, это тоже проблема. Это было ниже нескольких строк ниже сценария, показанного выше. –

1

Вместо того, чтобы поместить пароль в командной строке, создать ~/.my.cnf файл и поставить пароль там. Файл может предоставлять значения по умолчанию для любых параметров командной строки. Например, вы можете поместить это в нем:

[client] 
database = test 
user = test 
password = test 

Тогда вы можете просто запустить:

mysql --execute='DROP DATABASE $user; CREATE DATABASE $database;' 

Убедитесь разрешения файла ограничены, поэтому они не могут видеть неавторизованных пользователей пароль.

Смежные вопросы