从终端运行MySql命令不起作用

从终端运行MySql命令不起作用,mysql,linux,terminal,Mysql,Linux,Terminal,所以我想通过管道将我的netstat输出传输到一个mysql数据库中 计划是使其成为一个连续的crontab事件。这样我就可以存储这些数据并在其他地方轻松使用 虽然我需要弄清楚如何从终端运行SQL命令,但在弄清楚这一部分之前,我已经想好了 这似乎很直截了当 sudo mysql -u username -pMYPassword -e "SQL COMMAND" 然而,这不起作用 当我运行这个程序时,它会打印MYSQL帮助 当我运行这个 sudo mysql -u username -p -e

所以我想通过管道将我的netstat输出传输到一个mysql数据库中

计划是使其成为一个连续的crontab事件。这样我就可以存储这些数据并在其他地方轻松使用

虽然我需要弄清楚如何从终端运行SQL命令,但在弄清楚这一部分之前,我已经想好了

这似乎很直截了当

sudo mysql -u username -pMYPassword -e "SQL COMMAND"
然而,这不起作用

当我运行这个程序时,它会打印MYSQL帮助

当我运行这个

sudo mysql -u username -p -e "SQL COMMAND"
一切都很完美,它只是提示我输入密码

现在我不知道这是否有区别,但我的DB密码中确实有感叹号。它的长度也超过15个字符

这两个问题中有一个会成为问题吗

mysql -u user -p -e 'SQL Query' database
在哪里,

-u : Specify mysql database user name
-p : Prompt for password
-e : Execute sql query
database : Specify database name
因此选项-p是一个提示,密码不需要链接,但需要与密码分开:

sudo mysql -u username -p'PassWord' -e 'SELECT COUNT(*) FROM my_table'

编辑:如果您的真实密码包含特殊字符,您需要将其转义。

也许可以尝试:
sudo mysql-u username-p'MYPassword'-e“SQL命令”


或者:
sudomysql-uusername--password=MyPassword-e“SQL命令”

您是在shell中还是通过crontab执行第一个(不工作)命令?此外,我看不出您在哪里指定要操作的DB(当然,如果SQL需要的话),我尝试从终端执行此操作,并且我运行的命令是SHOW DATABASES您的语法(使用
SHOW DATABASES
)是正确的(并且工作良好)。所以我有两个猜测。首先-您的密码包含特殊的符号工具,需要转义才能在
crontab
中使用。第二,你没有保存你的输出,因此,无法意识到一切是否顺利,所以这个答案确实有效,但是-p标志和密码之间没有空格。我说的“分隔”是指密码不能与选项-p连接,引号是这种分隔的标志,尽管两个选项都可以工作,在-p后面加空格或不加空格,但引号是必须的。我用空格尝试了一下,它提示我输入密码,就好像我根本没有输入密码一样