从shell脚本连接MySQL DB时遇到问题。请找到我为连接MySQL数据库而编写的以下代码段。请在此建议。
我的shell脚本:
#!bin/bash
Query="select * from Main"
MySQL -u root -p '!!root!!' -e kpi << EOF
$Query;
EOF
请检查上面的代码并建议我如何连接数据库。
答案 0 :(得分:1)
我认为应该是
-pThePassword
所以你应该删除-p
和传球之间的空格。此外,你不应该使用撇号(除了它是传递本身的一部分。使用反斜杠来逃避特殊字符。
第二:* nix系统区分大小写,请尝试mysql
而不是MySQL
<强>更新强>
您也可以尝试将密码输入文件并使用脚本
进行阅读mysql -u root -p`cat /tmp/pass` -e "SHOW DATABASES"
文件/tmp/pass
应该包含您的密码,最后没有任何换行符。
更新2
你的剧本错了。
mysql ... -e SELECT * FROM TABLE
或mysql ... << EOF
(不使用-e)。你不应该把它们混在一起。use databasename;
)
;
醇>
方法一:
mysql -u root -ppassword databasename -e "SELECT * FROM main"
方法二:
mysql -u root -ppassword databasename << EOF
SELECT * FROM main
EOF
方法三:
mysql -u root -ppassword << EOF
USE databasename;
SELECT * FROM main;
EOF
答案 1 :(得分:0)
mysql --user=root --password=xxxxxx -e "source dbscript.sql"
这适用于Windows和Linux。
如果密码内容包含!
(感叹号),则应在其前面添加\
(反斜杠)。