Использование переменной для вызова MySQL в сценарии оболочки

0

Я создаю script, который может быть развернут для нескольких администраторов, которые смогут запускать его со своими учетными данными.

Тем не менее, я получаю ошибку Access Denied от mysql. Кажется, я думаю, что я не передаю имя пользователя команде MySQL:

Используя этот script:

set dbUser = "myusername"
set dbPass = "mypassword"
mysql --username=$dbUser --password=$dbPass --database="mydbname" -e "SELECT * FROM sometable"

ОШИБКА 1044 (42000): доступ запрещен для пользователя '@' localhost 'в базу данных

Странно, если я набираю имя пользователя и пароль MySQL непосредственно в команде MySQL и запускаю его в оболочке script, он отлично работает.

mysql --username="myusername"--password="mypass" --database="mydbname" -e "SELECT * FROM sometable"
Теги:
variables
mysql-error-1044

1 ответ

0
Лучший ответ

Для bash... не хотите -


dbUser=myusername
dbPass=mypassword
mysql --username=$dbUser --password=$dbPass --database="mydbname" -e "SELECT * FROM sometable"
  • 0
    Это смущало с моей стороны, действительно была проблема! Спасибо, что заметили
  • 0
    Это хорошая идея, чтобы привыкнуть всегда mysql --username="$dbUser" --password="$dbPass" ... в кавычки переменные, если вы не хотите, чтобы побочные эффекты были опущены в кавычки: mysql --username="$dbUser" --password="$dbPass" ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню