31

次のコマンドを使用して、リモート マシンで MySQL クエリを実行しようとしています。

ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""

そのデータベースを使用できません。

動作するコマンドを提案してください。

4

6 に答える 6

16

これを試して:

ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"

user@hostそのユーザーが一般的にmysqlを起動するだけでなく、SQLクエリを実行する権限を持っている場合も同じことができます。Using-eは と同じ--executeです。これは、末尾の引用符 (一重または二重) 内に入力したものを実行して終了します。標準出力形式は、 を使用して表示されるものと同じです--batch

于 2014-04-03T17:10:55.487 に答える
6

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 'テーブルを表示;' データベース名"

于 2013-11-12T19:59:05.757 に答える
3

これは最終的にbashスクリプトで機能しました:

query='USE [database]; SELECT ...'   
mysql='mysql -u [username] -p[password] -e '"'""$query""'"
ssh [username]@[server] -t "$mysql"

より安全にしたい場合は、安全でない可能性のある場所にパスワードを保存する代わりに、パスワードのプロンプトを追加してください。

于 2018-09-14T08:53:47.707 に答える