問題タブ [mysql-proxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQL Proxy を使用した MySQL フェイルオーバー
MySQL プロキシ ( http://forge.mysql.com/wiki/MySQL_Proxy )を使用して MySQL データベースのフェイルオーバー メカニズムを実装することを検討しています。
私が提案するセットアップは次のとおりです。1 つのアクティブな MySQL サーバーと 1 つのパッシブ MySQL で、両者の間で双方向のレプリケーションが有効になっています。MySQL Proxy は、これら 2 つのサーバーの間に配置され、アクティブ サーバーに障害が発生した場合にトラフィックをスタンバイ サーバーにリダイレクトするフェイルオーバーです。
MySQL Proxy を 2 台の MySQL サーバーのフェイルオーバー ツールとして使用したコミュニティの経験を知りたいだけです。私が見るべき落とし穴はありますか?このセットアップを即興できる他のヒント/調整/ハックはありますか?
そして、私は Windows を使用しているため、MySQL Proxy が必要です。
mysql - スケーラビリティ オプションを使用した複数の MySQL データベースのセットアップ
時間の経過とともに多くの一意のデータベース (実際には数千) の追加をサポートする MySQL 環境をセットアップする必要があります。ある時点で MySQL サーバーの追加を開始する必要があり、2 台目、3 台目、100 台目のサーバーへの移行を容易にするために、事前に環境を準備しておきたいと考えています。
興味深いことに、データベースにクエリを実行するアプリケーションがすべてのクエリを単一のアドレスに送信し、結果を受け取るようにソリューションをモデル化すると、非常に便利になります。サーバーの数と場所を認識しない必要があります。データベース名は一意であり、データベースを保持しているサーバーを特定するために使用できます。
いくつかの調査を行ったところ、MySQL Proxy が主な候補として出てきましたが、上記のように実行することについて具体的なことを見つけることができませんでした.
誰?
mysql - 更新が発生したときにmysqlプロキシを使用してmemcachedを期限切れにしますか?
クエリを取得してmd5を実行し、結果をmemcachedDBにキャッシュするmysqlプロキシを実行しています。この問題は、そのキャッシュを無効にする更新がRailsアプリで発生したときに発生します。その時点でキャッシュ内のすべての適切なキーを無効にする方法についてのアイデアはありますか?
postgresql - MySQL Proxy for PostgreSQL に似たものはありますか?
MySQL Proxyに似たものを探しています。目的は、サーバー上の受信クエリを変更することです。私は同じことを達成するための代替方法を探していません。現時点では、GridSQL を変更するのが最善の方法ですが、これにより複雑さが増し、時間がかかります。私は以前にこの質問を非常に異なる方法で尋ねましたが、関連する結果が得られなかったので、その質問を削除してこれを追加しました.
編集:クライアントが PostgreSQL プロトコルを引き続き使用できることが重要であるため、探しているパッケージはそれを使用して通信する必要があります。
mysql - Rails 3 を使用した MySQL レプリケーションの最適な実装は?
プライマリ MySQL データベースのレプリケーションをセットアップする可能性を検討しています。レプリケーションのセットアップは非常に簡単に思えますが、アプリケーションの実装は少しわかりにくいようです。
CREATE
私の最初のアイデアは、すべての書き込みクエリ ( 、INSERT
、UPDATE
) がマスターになり、すべての読み取りクエリ ( ) がスレーブになるように、マスター/スレーブ構成と RW 分割をセットアップすることですSELECT
。それを読んだところ、アプリでこれを実装する方法には基本的に 2 つのオプションがあるようです。
- MySQL プロキシやDBSlayerなど、すべての MySQL 接続に独立したミドルウェア レイヤーを使用します。ただし、前者はアルファ版で、後者はドキュメントが限られています。
- Octopusなどの Ruby ベースの gem/プラグインを使用して、フレームワークで RW 分割を実現します。
マスター/スレーブ セットアップを使用したい場合、今後の推奨事項は何ですか?
私が持っていたもう1つの考えは、マスターマスター構成を使用することでしたが、そのようなセットアップの実装については不明です.
考え?
mysql - MySql-Proxyを使用してMySqlクエリをトレースするには?
mysql-proxy をダウンロードして、このスクリプト lua を作成しました (Mysql docs にあります):
これは私が使用しているコマンドラインです:
単純なクエリ (「select * from table1」など) を実行すると、「failed: .\lua-scope.c:241: stat(C:...\profile.lua) failed: No error」というエラーが報告されます。 (0)」
注: lua スクリプトを使用せずに mysql-proxy を実行しても、エラーは発生しません。
mysql-proxy とクエリ トレースを機能させるには、何かをインストールする必要がありますか?
私の環境は Windows 7 Professional x64 です。
悪い英語でごめんなさい。
mysql - admin-プロキシのユーザー名エラー
開発マシンにプロキシをインストールしようとすると、次のエラーが発生しました。
これは単なるテストマシンなので、プロキシのセキュリティ機能は必要ありません。上記のエラーを回避するにはどうすればよいですか?
mysql-proxy - mysql-proxy luaスクリプトの完全なドキュメントのセットはありますか?
mysql-proxyのスクリプトで遊んでいます。私が達成しようとしていることは無関係です。しかし、私が見つけたのは、文書化されていないluaインターフェースの要素があるように見えるということです。私が持っている大きな「喫煙銃」はdisconnect_client()
フックです。管理インターフェースの説明の例で使用されていますが、公式ドキュメントのどこにも文書化されていません。サンプルドキュメントでも広く使用されています。クイックgrepは、5.5.8ディストリビューションに含まれている次のスクリプトでの使用法を示しています。
active-queries.lua
active-transactions.lua
load-multi.lua
ro-pooling.lua
rw-splitting.luatutorial
-keepalive.lua
私の目を引いた他の例は、proxy.global.backends
テーブル内のエントリの属性のリストです。ドキュメントには、次の属性がリストされています。
ただし、サンプルスクリプトのいくつかは、poolと呼ばれるかなり複雑な要素を参照しています。たとえばtutorial-keepalive.lua
:
最初は、luaのどこかに追加されていると思っていましたが、調べてみたところ、proxy.global.backends[i].poolに割り当てられているコードが見つかりませんでした。
だから、私が思う2つの質問:
- 私はナッツですか?私がどのように明白なものを見落としたか、そしてドキュメントが本当に非常に明確であるかを自由に示してください。
- 私が正しいと仮定すると、完全なドキュメントを見つける場所はありますか?素敵なリンクは素晴らしいでしょう(私はそれをグーグルで検索することはできませんでしたが)が、「インターフェースを定義するmysql-proxyディストリビューションからのこの.cファイルを見てください」。少なくともそれは私に何かを突くようなものを与えるでしょう。
ありがとう
mysql - mysql プロキシ r/w レプリケーションと一時テーブル
MySQL5.1 でマスター/スレーブ レプリケーションを実行しており、mysql プロキシ 0.8.x で r/w 分割を行っています。
一時テーブルを除いて正常に動作します。MySQL は、一時テーブルが存在しないというエラーをスローします。
これは、マスター サーバーのクエリ ログです。
これは、スレーブのクエリ ログです。
これは mysql エラー メッセージです。
マスターに直接クエリを実行すると (php db 接続を mysql-proxy ではなくマスターに変更する)、問題なく動作します。
私はこのmysqlプロキシ設定を使用しています:
それを修正する方法について誰か考えがありますか?助けてくれてありがとう!
// 翌日編集
これが機能しない理由を知っていると思います:
MySQL Proxy は create tmp および insert select ステートメントをマスターに送信し、マスターはコマンドを正しくスレーブにレプリケートし、次のステップで select がスレーブに送信されます。残念ながら、MySQL では、tmp テーブルはそれを発行した接続に対してのみ有効です。したがって、レプリケーションによって作成された tmp テーブルは、スレーブ上の mysql プロキシによって発行された 2 番目の接続に対しては有効ではありません。
私は現在、アプリケーションを変更し、マスターに直接 tmp テーブルを使用して接続を発行することで、これを解決しようとしています。
より良い解決策があると思われる場合はお知らせください。
mysql - MySQL Workbench をリモート サーバーにリンクする
MySQL Workbench をダウンロードしました。
しかし、これをリモートサーバーのデータベースと同期する方法がよくわかりません。
ワークベンチが「ホスト名」を要求するので、リモート サーバーのホスト名を指定しました。ポート 3306 を指定します。
次に、ユーザー名を提供します。これは、私が PhpAdmin にログインするときに使用するユーザー名です。別のユーザー名を使用する必要がありますか?
次に、PhpAdmin で使用するものと同じパスワードを指定します。
しかし、これはうまくいきません。
奇妙なことに、エラーは常に私のユーザー名が次のとおりであることを示しています。username@current_network_im_using_to_access_the_internet
しかし、これは正しくないようです。phpAdmin では、私のユーザー名はusername@localhost
.
どうすればいいのかよくわかりません。
手伝って頂けますか?