次のコマンドを使用して、リモート マシンで MySQL クエリを実行しようとしています。
ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""
そのデータベースを使用できません。
動作するコマンドを提案してください。
次のコマンドを使用して、リモート マシンで MySQL クエリを実行しようとしています。
ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""
そのデータベースを使用できません。
動作するコマンドを提案してください。
これを試して:
ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"
user@host
そのユーザーが一般的にmysqlを起動するだけでなく、SQLクエリを実行する権限を持っている場合も同じことができます。Using-e
は と同じ--execute
です。これは、末尾の引用符 (一重または二重) 内に入力したものを実行して終了します。標準出力形式は、 を使用して表示されるものと同じです--batch
。
MySql には、データベースを含む特別なコマンド ライン構文があるようです。
mysql -u ユーザー -p -e 'SQL クエリ' データベース
このドキュメントはかなり古いですが、動作するようになりました
http://www.cyberciti.biz/faq/run-sql-query-directly-on-the-command-line/
ssh を使用した最終的な作業コマンド:
ssh user@host "mysql -u user -e 'テーブルを表示;' データベース名"
これは最終的にbashスクリプトで機能しました:
query='USE [database]; SELECT ...'
mysql='mysql -u [username] -p[password] -e '"'""$query""'"
ssh [username]@[server] -t "$mysql"
より安全にしたい場合は、安全でない可能性のある場所にパスワードを保存する代わりに、パスワードのプロンプトを追加してください。