MySql使用Makefile创建数据库

MySql使用Makefile创建数据库,mysql,docker,makefile,Mysql,Docker,Makefile,对于简单的“显示数据库”查询,它也会抛出错误 我不知道它为什么不起作用问问题的第一条规则是:始终包括您键入的命令和您得到的输出,剪切并粘贴到您的问题中。如果输出太长、太乱而无法包含,那么至少要始终包含您得到的实际错误或不正确的输出,以及前后几行内容 编写makefile的第一条规则:在makefile完全工作之前,不要添加@。你隐藏关键细节,这是在伤害自己的脚。或者,阅读另一种处理方法 编写makefiles的第二条规则:在尝试将命令添加到makefile配方之前,在shell命令行中键入时,始

对于简单的“显示数据库”查询,它也会抛出错误


我不知道它为什么不起作用

问问题的第一条规则是:始终包括您键入的命令和您得到的输出,剪切并粘贴到您的问题中。如果输出太长、太乱而无法包含,那么至少要始终包含您得到的实际错误或不正确的输出,以及前后几行内容

编写makefile的第一条规则:在makefile完全工作之前,不要添加
@
。你隐藏关键细节,这是在伤害自己的脚。或者,阅读另一种处理方法

编写makefiles的第二条规则:在尝试将命令添加到makefile配方之前,在shell命令行中键入时,始终确保命令有效

我对docker不太了解,但我怀疑这是一个引用shell的问题,而不是make的问题。。。如果剪切并粘贴到shell提示符,我怀疑此命令将不起作用。那是因为我认为你的报价是错误的

请尝试以下方法(注意mysql命令的不同引用):


这确保了最后一个命令是一个包含引号的单词。

您说“it抛出错误”,但在询问帮助时忽略了细节。另请参阅“谢谢”的提示,但我发现了以下错误:mysql:[警告]在命令行界面上使用密码可能不安全。第1行出现错误1064(42000):SQL语法中有错误;检查与MySQL服务器版本对应的手册,以了解在第1行“创建数据库”附近使用的正确语法:**[MySQL创建数据库]错误1@docker-compose exec-T mysqldb mysql-u“$(mysql\u用户)”-p“$(mysql\u密码)”-e“create database abcd”这似乎很有效。正如我所说,我对docker不太熟悉。我不知道你为什么想逃避引用,所以我认为它们是必要的,但我想不是。
include .env

help:
    @echo ""
    @echo "usage: make COMMAND"
    @echo ""
    @echo "Commands:"
    @echo "  mysql-create-db     Create mysql database"

mysql-create-db:
    @docker-compose exec -T mysqldb mysql -u"$(MYSQL_USER)" -p"$(MYSQL_PASSWORD)" -e \'create database abcd\'
mysql-create-db:
        @docker-compose exec -T mysqldb mysql -u"$(MYSQL_USER)" -p"$(MYSQL_PASSWORD)" -e "'create database abcd'"