Mysql
 sql >> Base de données >  >> RDS >> Mysql

Passez le mot de passe à mysql_config_editor en utilisant une variable dans le shell

J'ai trouvé que l'autre réponse suggérée ne fonctionnait pas lorsqu'il n'y avait pas d'ATS. J'ai donc utilisé ce script bash qui fonctionne dans des endroits comme Terraform/ssh qui n'a pas de terminal :

#!/bin/bash

if [ $# -ne 4 ]; then
  echo "Incorrect number of input arguments: $0 $*"
  echo "Usage: $0 <login> <host> <username> <password>"
  echo "Example: $0 test 10.1.2.3 myuser mypassword"
  exit 1
fi

login=$1
host=$2
user=$3
pass=$4

unbuffer expect -c "
spawn mysql_config_editor set --login-path=$login --host=$host --user=$user --password
expect -nocase \"Enter password:\" {send \"$pass\r\"; interact}
"

Testez-le :

./mysql_config.sh login 10.1.2.3 myuser mypass < /dev/null