
Tengo lo siguiente en un script bash:
target="-h1.2.3.4 -P3307"
user="-uusername"
pass="-ppassword"
mysql ${target} ${user} ${pass} -se"SHOW DATABSES;"
Esto funciona bien, excepto que se conecta al puerto 3306 y no al 3307. ¿Cómo puedo hacer que se lea ${target}
correctamente?
Sin dividirse target
en dos variables separadas.
Si ejecuto manualmente
mysql -h1.2.3.4 -P3307 -uusername -ppassword
entonces funciona bien, eso es lo que estoy tratando de lograr. Es casi como si MySQL estuviera ignorando -P3307
y usando el valor predeterminado 3306
.
También intenté ponerlo todo en una variable y tampoco funciona (ignora el puerto, el nombre de usuario y la contraseña).
Parece que el problema es que MySQL interpreta el $target
valor como si fuera una sola cosa. Si cambio Puerto y Host obtengo:
target="-P3307 -h1.2.3.4"
mysql ${target} ${user} ${pass} -se"SHOW DATABSES;"
Yo obtengo:
Unknown suffix ' ' used for variable 'port' (value '3307 -h1.2.3.4')
mysql: Error while setting value '3307 -h1.2.3.4' to 'port'
Entonces, no sé si es un problema de MySQL o de Linux.