Передать вывод из вызова метаданных в MySQL

Передать вывод из вызова метаданных в MySQL

Ссылка:Как передать пароль в командную строку mysql

Я хочу получить возвращенные метаданные из экземпляра AWS EC2 и установить новый пароль MySQL на основе этих данных.

Мне нужна помощь со скриптом, который будет запускаться при первой загрузке.

#!/bin/bash  
output=$(ec2metadata --instance-id); Used for storing EC2 ID.   

mysql -u root -pOldPassword  
UPDATE mysql.user  

Теперь передайте идентификатор экземпляра и используйте его для установки нового пароля для пользователя root в MySQL.

SET authentication_string = PASSWORD('$output'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';

FLUSH PRIVILEGES;

EXIT

решение1

Bash не раскрывает переменные в одинарных кавычках. Кроме того, вы можете запустить несколько SQL-запросов или один, если вам так больше нравится, используя<<EOF...EOFстроительство. Код ниже сработал для меня

#!/bin/bash                                                                                                                                 

newpass="newPassword"

mysql -u root -poldPassword <<EOF                                                                                                                  
UPDATE mysql.user SET Password=PASSWORD("$newpass") WHERE User='root';                                                                      
FLUSH PRIVILEGES;                                                                                                                           
QUIT                                                                                                                                        
EOF

Вы можете запустить правильную UPDATEкоманду в соответствии с вашей версией MySQL. Я использовал5.6.35. Если вы используете MySQL5.7UPDATEтолько вместо показанного выше запроса используйте следующий :

UPDATE mysql.user SET authentication_string=PASSWORD("$newpass") WHERE User='root';

Более подробную информацию вы можете найти в официальной документации MySQL: https://dev.mysql.com/doc/refman/5.7/en/update.html

Связанный контент