我有一臺CentOS服務器,我想從BASH腳本在我的筆記本電腦上運行它。通過SSH從BASH腳本編寫MySQL
本地運行的腳本: - 登錄到服務器通過SSH和執行一些MySQL的語句 - 我需要,我需要他們
文件複製是很容易複製文件。我可以做到這一點。
但是,如何通過SSH端口連接到MySQL服務器並執行語句?我想我只是被困在連接部分。執行我可以建立在變量和批處理執行上的語句。
我從我的筆記本電腦到這臺服務器也有一個SSH pub/priv keypair。
有幫助嗎?
我有一臺CentOS服務器,我想從BASH腳本在我的筆記本電腦上運行它。通過SSH從BASH腳本編寫MySQL
本地運行的腳本: - 登錄到服務器通過SSH和執行一些MySQL的語句 - 我需要,我需要他們
文件複製是很容易複製文件。我可以做到這一點。
但是,如何通過SSH端口連接到MySQL服務器並執行語句?我想我只是被困在連接部分。執行我可以建立在變量和批處理執行上的語句。
我從我的筆記本電腦到這臺服務器也有一個SSH pub/priv keypair。
有幫助嗎?
只需使用ssh在遠程服務器上運行mysql
即可。例如,
ssh [email protected] 'mysql -uimauser -p imadb -e "select * from table"'
。
引號中的所有內容都將通過ssh遠程運行。
您可以指定命令到遠程機器上運行,作爲最後一個參數爲SSH:
ssh [email protected] 'mysql -u user ...'
這裏的問題是,這將是應對在各種「」逃避麻煩。mysql命令(S)
一種更好的方式,在我看來,是打開一個SSH隧道到遠程機器上,當您連接:
ssh -L 12341:127.0.0.1:3306 [email protected] &
這將連接當地的12341端口,T遠程機器的3306(mysqld)端口。連接完成後,你可以從你的本地計算機一樣連接到它:
mysql -h 127.0.0.1 -p 12341
所以,你可以把你的SQL語句到一個文件,和貓它到MySQL:
cat commands | mysql -h 127.0.0.1 -p 12341
別不要忘了在完成之後終止SSH連接。
注意隧道需要遠程服務器有PermitTunnel「是」在它的sshd_config中。
你可以做什麼@WishCow說,或者你可以把所有的MySQL語句在.sql
文件,這個文件拷貝到服務器,然後調用MySQL來執行這些語句,像這樣:
echo "show databases;" > test.sql
echo "use some_database;" >> test.sql
echo "show tables;" >> test.sql
scp test.sql [email protected]:
ssh [email protected] 'mysql -u mysql-user -pmysql-pass < test.sql'
這是什麼您正在尋找? http://www.wallpaperama.com/forums/_zwxwzy.html – mikevoermans 2012-03-30 22:18:22