从终端运行MySql命令不起作用
所以我想通过管道将我的netstat输出传输到一个mysql数据库中 计划是使其成为一个连续的crontab事件。这样我就可以存储这些数据并在其他地方轻松使用 虽然我需要弄清楚如何从终端运行SQL命令,但在弄清楚这一部分之前,我已经想好了 这似乎很直截了当从终端运行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
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后面加空格或不加空格,但引号是必须的。我用空格尝试了一下,它提示我输入密码,就好像我根本没有输入密码一样