2012-03-30 12 views
5

私はラップトップでBASHを実行してスクリプトを作成したいCentOSサーバを持っています。いくつかのMySQL文 のssh経由でサーバにログインして実行 - - 私は、ファイルのコピーが簡単にそれらSSH経由でBASHからMySQLをスクリプト化する

を必要な場所に必要なファイルをコピーしますが :

はローカルでそのスクリプトを実行します。私はそれを行うことができます。

しかし、どのようにしてSSHポートを介してMySQLサーバに接続して文を実行できますか?私はちょうど接続部分にこだわっていると思う。私は変数とバッチを実行して構築することができるステートメントを実行します。

私のノートパソコンからこのサーバまでのSSH pub/privキーペアを持っています。

助けてくださいか?

+0

これは何ですかあなたが探しています? http://www.wallpaperama.com/forums/_zwxwzy.html – mikevoermans

答えて

5

リモートサーバ上でmysqlを実行するにはsshを使用してください。例えば、

ssh [email protected] 'mysql -uimauser -p imadb -e "select * from table"'

引用符で囲まれたものはすべて、sshによってリモートで実行されます。

9
あなたはSSHの最後の引数として、リモートマシン上で実行するコマンドを指定することができ

ssh [email protected] 'mysql -u user ...' 
これに伴う問題は、「」様々ながでエスケープに対処するために面倒になるということです

mysqlコマンド(複数可)

良い方法は、私の意見では、あなたが接続したときにリモートマシンにSSHトンネルを開くことです:。

ssh -L 12341:127.0.0.1:3306 [email protected] & 

これは、あなたの地元の12341ポート、Tを接続しますリモートマシンの3306(mysqld)ポート。ドン」

cat commands | mysql -h 127.0.0.1 -p 12341 

:だからあなたがファイルにSQL文を置くことができます

mysql -h 127.0.0.1 -p 12341 

、およびMySQLへの猫、それを:接続が完了したら、あなたは次のようにローカルマシンから接続することができますあなたが終わったらSSH接続を忘れることを忘れないでください。

トンネリングでは、リモートサーバーでPermitTunnelが "yes"であることが必要です。これはsshd_configにあります。

5

あなたは@WishCowが言ったことを行うことができますまたはあなたは、.sqlファイル内のすべてのMySQL文を入れて、サーバーにこのファイルをコピーして、これらの文を実行するための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' 
関連する問題