MySQL的创建数据库和用户脚本

问改写:

HOMEDIR="ftpuser" REMOTEIP="1.1.1.1" MYSQLPASS="password" Q1="DROP USER "$HOMEDIR"_shop;" Q2="DROP DATABASE "$HOMEDIR"_shop;" Q3="CREATE DATABASE IF NOT EXISTS "$HOMEDIR"_shop;" Q4="GRANT ALL ON "$HOMEDIR"_shop TO '"$HOMEDIR"_shop'@'localhost' IDENTIFIED BY '$MYSQLPASS';" Q5="GRANT ALL ON "$HOMEDIR"_shop TO '"$HOMEDIR"_shop'@'anotherip' IDENTIFIED BY '$MYSQLPASS';" # Need to grant permissions from another server as well Q6="FLUSH PRIVILEGES;" SQL="${Q1}${Q2}${Q3}${Q4}${Q5}${Q6}" echo $SQL echo " " ssh -p 8899 root@$REMOTEIP "mysql -u root -p "$SQL""

我然后运行:

/root/testing/migratesite.sh

并获得:

bash: DROP: command not found bash: CREATE: command not found bash: GRANT: command not found bash: GRANT: command not found bash: FLUSH: command not found

我在想什么?

--------------解决方案-------------

你缺少的报价和适当的MySQL客户端的命令行:

ssh -p 8899 root@$REMOTEIP "mysql -u root -p -e \"$SQL\""

你需要逃避周围的$ SQL变量的引用,使他们得到传递到远程shell,否则,他们获得由本地shell解释(这就是为什么你得到DROP:找不到命令,将分号被shell解释)也,有mysql客户来执行,你必须通过-e命令行选项的命令。

你试试这个:

ssh -p 8899 root@$REMOTEIP "echo \"$SQL\" | mysql -u root --password=$SQL_PASS"

分类:MySQL的 时间:2015-03-15 人气:4
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.673 (s). 10 q(s)