mysql - Bash脚本无法向mysql发送指令

标签 mysql bash docker

这是 Bash 脚本的一部分,里面是这样的:

createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" 
echo $createdbcmd
$createdbcmd

echo 看起来像这样:

docker exec mysql_test_no mysql -v -uroot -e "GRANT ALL PRIVILEGES ON wordpress.* TO user@172.17.0.63 IDENTIFIED BY 'changeme'" 

运行这个确切的命令工作得很好。通过 bash 脚本,它就像我只是在运行“mysql”一样 我得到了默认的帮助信息,没有错误。

最佳答案

试试这个方法:

createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" 
echo $createdbcmd
eval $createdbcmd

如果没有 eval,引用的表达式将不会被正确解释。

关于mysql - Bash脚本无法向mysql发送指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583548/

相关文章:

MySQL 内连接(带别名)

bash - 使用回显发送udp消息时设置源端口?

sql-server - 适用于 Windows 的 Docker Desktop 2.3.0.2 - 主机卷停止工作

MySql 3表连接、分组和求和

mysql - 工作 perl ascript 现在说 .DBD::mysql::db do failed: 你的 SQL 语法有错误;

mysql - 如何在mysql中同时选择两个不同事物的计数?

linux - 将输出转换为 Excel 工作表的脚本

Bash 检查 grep 是否匹配字符串

mysql - 将 Rails/Unicorn/Nginx 容器连接到 MySQL 容器

docker - Docker Swarm服务网络