你得到了什麼錯誤?
我不確定INTO OUTFILE是如何工作的,但99%它需要寫入文件來告訴它寫入。在你的查詢中,輸出文件在根(/)分區中是正確的。我懷疑用戶mysql是否允許在那裏寫入。如果您使用的是* nix框,請在您的shell中創建文件
touch /home/ubuntu/mysqlchanges.txt
sudo chown mysql:mysql /home/ubuntu/mysqlchanges.txt
首先在您的shell中。然後進行測試,你可以做
su mysql
echo "" > /home/ubuntu/mysqlchanges.txt
,如果是沒有錯誤的原理,你可以修改你的查詢輸出到這個文件,Mutt將獲得該文件作爲附件:
mysql --user=me --password=00045344534 john_e56
SELECT table_schema,table_name,update_time
FROM information_schema.tables
WHERE update_time > (NOW() - INTERVAL 5 MINUTE);
INTO OUTFILE '/home/ubuntu/mysqlchanges.txt'
exit
mutt -s "mysql changes" [email protected] -a /home/ubuntu/mysqlchanges.txt < /mail.txt
假設ubuntu
被你的用戶和mysql代表mysql
用戶運行。
UPDATE
如果我理解您的要求,你只需要接受這個SQL查詢的輸出:
SELECT table_schema,table_name,update_time
FROM information_schema.tables
WHERE update_time > (NOW() - INTERVAL 5 MINUTE);
到您的郵箱[email protected]
如果它不是關鍵使它作爲附件,只是純文本在身體很好,然後看看這個bash命令:
mysql -u me -p00045344534 -e 'SELECT table_schema,table_name,update_time FROM information_schema.tables WHERE update_time > (NOW() - INTERVAL 5 MINUTE);' | mutt -s "mysql changes" [email protected] --
首先,它啓動與輸出查詢STDOUT
,然後通過管道將它mutt
你把所有這些命令到一個shell腳本?您應該將部分從'SELECT'移動到'exit'到一個單獨的文本文件中,然後像這樣啓動mysql:mysql --user = me --password = 00045344534 john_e56
pelya
我嘗試了一個單獨的文件,但是錯誤1064(42000)在第4行:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在第一行使用'INTO OUTFILE'/home/john/mysqlchanges.txt' exit'使用正確的語法。 – John
刪除';'在WHERE結尾,它會終止您的SQL命令和'INTO OUTFILE'變成單獨的無效命令 – pelya