SOには多くのmysql-proxyの質問があることは知っていますが、それらの多くを読みましたが、どれも私の問題を解決していないようです. 私は単純に mysql-proxy を起動して実行しようとしていますが、最終的にはプロキシを通過するいくつかのクエリを書き直すことを目的としています。ubuntu 14.04 を使用しています。mysql-proxy バージョン 0.8.1 と mysql バージョン 5.5.37 を使用しています。mysql-proxy を起動するには、コマンド ラインで次の行を実行します。
sudo mysql-proxy --defaults-file=mysql-proxy.cnf
ここで、ファイル mysql-proxy.cnf は次のようになります。
[mysql-proxy]
log-file= /var/log/mysql/proxy-error.log
log-level= debug
admin-lua-script= /usr/lib/mysql-proxy/lua/admin.lua
proxy-lua-script= /path/to/lua/script/example.lua
admin-username = myusername
admin-password = mypassword
proxy-skip-profiling = true
proxy-address = localhost:4040
proxy-backend-addresses = localhost:3306
plugins = proxy,admin
私の example.lua スクリプトは非常に単純で、mysql-proxy クエリが変更されていることを確認するためだけのものです。example.lua を以下に貼り付けます
-- first_example.lua
function read_query(packet)
if string.byte(packet) == proxy.COM_QUERY then
print("Hello world! Seen the query: " .. string.sub(packet, 2))
end
end
--daemon フラグを指定してこれを実行しないので、コマンド ラインで上記の行を実行すると、予期されるとおり、無期限にループします。
最後に、別のターミナル セッションで、コマンド ラインで次のコマンドを実行し、プロキシに接続するためにパスワードを入力します。
mysql -u myusername -p -h localhost -P 4040
次に、使用するデータベースを選択し、テーブルの 1 つに対して単純な SELECT クエリを実行します。mysql-proxy で読んだ複数の記事/チュートリアルに基づいて、mysql-proxy を実行した最初のコンソール セッションは、example.lua ファイルに基づいていくつかのデータを出力するはずです。ただし、これは発生しません。実際には何も起こりません。
次の情報が違いを生むかどうかはわかりませんが、私の "my.cnf" mysql 構成ファイルには、これらの行がいくつかあります
bind-address = 255.255.255.255
#bind-address = 127.0.0.1
IP アドレスを公開したくないので、実際の IP アドレスを 255.255.255.255 に置き換えました。
お願いします、私は数日間これを理解しようとしてきましたが、新しい lua スクリプトの量も、mysql-proxy.cnf ファイルの host:port パラメータの変更も何も解決しませんでした。私