ラベル MySQL Proxy の投稿を表示しています。 すべての投稿を表示
ラベル MySQL Proxy の投稿を表示しています。 すべての投稿を表示

2018年5月24日木曜日

プロキシMySQL :: HAproxy || ProxySQLとKeepAlived


だからあなたのMySQLトラフィックをルーティングする場合、いくつかのオプションが存在します。 

今私はHAproxyがクライアントとより頻繁に使用されるのを見てきましたが、設定するのはかなり簡単です。 Perconaには興味のある人の例があります:

個人的に私はProxySQLが好きです。 Perconaにもこれに関するブログはほとんどありません
PerconaにもProxySQLバージョンがあります

私はいくつかの例を書いてみることを考えていましたが、ペルコナ全体がそれをとてもうまく説明しました。 私はそれらの投稿から何かを取り除きたくない、代わりにそれらのURLを介して多くの良い情報が利用可能であることを指摘する。 だからすでに書かれたものを書き換えるのではなく、私は興味のある人のための情報のコレクションを作成します。

最初に自分が必要と望むものを比較して決定します。 以下のリンクはもちろん、ProxySQLに偏っていますが、全体的な検討範囲が与えられます。
クラスタやマスターをマスタリングしていて、どのサーバーに接続していても、書き込みと読み取りがどちらになるかは気にしません。 HAproxyはシンプルな設定が可能です。

ProxySQLの特典は、トラフィックを簡単に重み付けして並べ替えることができます。 したがって、書き込みをノード1に行って、ノード2とノード3からプルを選択することができます。これに関するドキュメントは、次の場所にあります。
はい、HAproxyで実行できますが、それに応じてアプリケーションに指示する必要があります。
これは、クエリルールに基づいてProxySQLで処理されます。

今ここで明らかな質問:はい、どのようにProxySQLを単一障害点にしないようにしますか?

あなたは堅牢なロードバランサやetcなどを投資することができます。ハードウェアを投げてください....または自分で簡単にしてオープンソースをサポートし、 KeepAliveを使用してください。 これは設定が非常に簡単で、そのすべてがここでもうまく文書化されています:
あなたがluaとmysql-proxyを扱ったことがあるならば、ProxySQLとKeepalivedは非常に簡単です。 それでも何らかの理由でそれが必要な場合: https : //launchpad.net/mysql-proxy

HAproxy、ProxySQL、または別のソリューションを選択した場合でも、単一障害点を別の障害点に置き換えないようにする必要があります。 あなたがプロキシを使用している場合、これをしない理由はほとんどありません。

ProxySQLについてもう少し詳しく説明します。

http://anothermysqldba.blogspot.com/2018/05/proxy-mysql-haproxy-proxysql-keepalived.html

2013年5月10日金曜日

セットアップMySQLのプロキシ

Original post: http://anothermysqldba.blogspot.com/2013/05/setup-mysql-proxy.html

だから、これはMySQLのプロキシを使用するだけの非常に単純な例です。 

MySQLのプロキシは、端の年のように感じている何のためにアルファ段階になっています。 


MySQLのプロキシのドキュメント: 

MySQLのプロキシWIKI用のMySQL鍛造サイトから残っているものは何でもここで見つけることができます: https://wikis.oracle.com/display/mysql/MySQL+Proxy 

MySQLのプロキシをインストールします : 
からダウンロードして解凍dev.mysql.com 。 現在アルファ版は、MySQLプロキシ0.8.3です。 

あなたもLuaのがインストールされていることを確認してください 

yum install lua-devel lua-static lua


次に、binディレクトリでのmysql-proxyのを見つけるでしょう。 


[root@localhost bin]# ./mysql-proxy --help
Usage:
mysql-proxy [OPTION...] - MySQL Proxy


MySQLのコマンドオプション : 

まず、日付の文書のうち、認識していることを確認する必要があります。 

あなたの設定ファイルにデーモン= trueを追加して有効であると思うかもしれません。 
これは、ドキュメントを介した次のオプションのために有効であるどのように真のすべてのポイントの後に行います。 



For example, the following is invalid:

 [mysql-proxy] proxy-skip-profiling 

But this is valid:

 [mysql-proxy] proxy-skip-profiling = true 


http://dev.mysql.com/doc/refman/5.6/en/mysql-proxy-configuration.html #option_mysql-proxy_daemonを 

しかしデーモンまたはデーモンは、次の問題で=真の結果はとても使いデーモン= 1 

./bin/mysql-proxy --defaults-file=mysql_proxy.cnf
(critical) Key file contains key 'daemon' which has value that cannot be interpreted. 


同じことがアライブ=真に当てはまります 


./bin/mysql-proxy --defaults-file=mysql_proxy.cnf
(critical) Key file contains key 'keepalive' which has value that cannot be interpreted. 


管理インタフェースの使用 : 

admin.luaファイルは、MySQL-proxyのディレクトリの下に提供されています: 
  • / libに/ mysqlのプロキシ/ LUA / admin.lua
    • ので、私はドキュメントのバージョンを使用してもこれは私のために失敗しました。
  • あなたは、ドキュメントを介して貼り付けてそれをカットすることができます
reporter.luaファイルは、/ libに/ mysqlのプロキシ/ LUA /ディレクトリに配置することができます: 


だから私は、次の設定例で終わる


vi mysql_proxy.cnf

[mysql-proxy]

admin -address =127.0.0.1: 3308

proxy -address=127.0.0.1: 3307

proxy-skip-profiling = true
daemon=1
PIDファイル=の/ var / runに/のmysql - proxy.pid
ログファイル=は/ var / log /のmysql - proxy.logなど
ログレベル=デバッグ
プロキシバックエンドアドレス= 127.0.0.1:3306
#プロキシ読み取り専用バックエンドアドレス= 127.0.0.1:3306
キープ= 1
管理者ユーザ名=ルート
管理者パスワードによる= secretpassword
管理-LUAスクリプト=は/ usr / local / srcに/ MySQLの/ mysqlのプロキシ/ admin.lua
プロキシのluaスクリプト=は/ usr / local / srcに/ MySQLの/ mysqlのプロキシ/ reporter.lua
plugin_dir =は/ usr / libに/ mysqlの/プラグイン/
プラグイン=プロキシは、admin


今回はそれが開始されます.... 


./bin/mysql-proxy --defaults-file=mysql_proxy.cnf


あなたは、そのプロキシを確認するログ尾は起動され、その後実行する管理ポート(3308)にログイン 

(message) proxy listening on port 127.0.0.1: 3307
# mysql -u root -p -P3308 -h127.0.0.1 

あなたがログインしているしたら、それをテストするために始めることができます: 

# mysql -u root -p -P3308 -h127.0.0.1

show querycounter;
+---------------+
| query_counter |
+---------------+
| NULL |
+---------------+ 



SELECT * FROM backends;
+-------------+----------------+-------+------+
| backend_ndx | address | state | type |
+-------------+----------------+-------+------+
| 1 | 127.0.0.1:3306 | 1 | 1 |
+-------------+----------------+-------+------+ 



> SHOW PROXY PROCESSLIST;
ERROR 1105 (07000): need a resultset + proxy.PROXY_SEND_RESULT ... got something else


常にあなたのログをチェックし忘れないでください... 


(critical) (read_query) [string "/usr/local/src/MySQL/mysql-proxy/admin.lua"]:152: bad argument #1 to 'pairs' (table expected, got nil) 


OK MySQLのプロキシはアップしている... 
今、問題や不満のLUA以上、なぜそれは、MySQL-プロキシの一部では、開始することができます... 

http://lua.2524044.n2.nabble.com/Beginner-from-Python-starting-to-MySQL-Proxy-td7636807.html