我正在尝试使用grunt和grunt-shell来创建数据库 问题是:如果我从shell创建它,这行正常工作:
mysql -uroot -pmypass -e "create database test"
相反,如果我使用grunt和grunt-shell,它就不会像这样工作:
shell: {
install_db: {
options: {
stdout: true,
stderr: true
},
command: [
'ssh user@demo.server.it mysql -uroot -pmypass -e "create database test"',
].join("&&")
}
}
“它不起作用”意味着打印出mysql
的参数列表,如下所示:
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--auto-rehash Enable automatic rehashing. One doesn't need to use
'rehash' to get table and field completion, but startup
and reconnecting may take a longer time. Disable with
--disable-auto-rehash.
(Defaults to on; use --skip-auto-rehash to disable.)
-A, --no-auto-rehash
...
我也尝试过:
'ssh user@demo.server.it mysql -uroot -pmypass -e \"create database test\"',
'ssh user@demo.server.it mysql -uroot -pmypass -e create database test',
'ssh user@demo.server.it mysql -uroot -p -e create database test',
和许多其他相同的问题打印出mysql
命令的参数列表,它不会创建数据库。
为什么?
答案 0 :(得分:0)
找到问题,使用mysqladmin它可以正常工作:
'ssh user@demo.server.it mysqladmin -uroot -pmypass create test',