問題タブ [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 - NodeJS を使用した MySQL プロキシ
MySQL ベースのアプリケーションと MySQL サーバーの間にプロキシを作成する簡単なプログラムを作成しようとしています。
現在、私のアプローチは、ポート 3065 で MySQL と通信するようにアプリケーションを変更することです。私のプロキシは、すべての要求をリッスンして MySQL サーバーに送信する単純なソケット サーバーです。
アーキテクチャを変更したかったので、このページを見ました: http://dev.mysql.com/doc/refman/5.0/en/mysql-proxy-scripting.html、このページにはまさに必要なものがあります - read_query( ) および read_query_results()。
私の主な問題は、プロキシのスクリプト言語として LUA を使用していることです。NodeJS でこの API を使用するにはどうすればよいですか?
mysql - データベースシャーディングの設定-データベース間クエリはありません
私は、クライアント(小規模から大規模の組織)ごとに、他のクライアントのレコードにクエリを実行できない(そしてできないはずの)Webアプリケーションを開発しています。
データを単一のデータベースに保持するのは簡単で、更新と保守が簡単になります(スケーラビリティの問題が発生するまで)。しかし、私は今、アプリケーションを将来にわたって利用できるようにしたいと思っています。各クライアントのデータが分離されたデータベースに含まれている場合、各クライアントのパフォーマンスは向上し、拡張性も向上するはずです。単一のスキーマを複数のデータベースに分割していないため、データベースの「シャーディング」と同等かどうかはわかりません。私は基本的に、すべてのデータベースで単一のスキーマを複製します(CDでソフトウェアを出荷する当時のように-それぞれが独自のデータベースを持っています)。
これを少し読んだので、一般的な概念がわかりました。しかし、頭の中にはたくさんの質問があります。このプロセスがどれほど透過的であるかは正確にはわかりません。または、変更をロールアウトするたびに何百ものスキーマを更新するというメンテナンスの悪夢に遭遇した場合。
本当に、私は単純な「完全な」例を探しています(うまくいけばspring / javaを使用しています)。
単一のデータソースで開始する単一のアプリケーションサーバー、たとえば、ユーザーIDをデータベースにマッピングする単一のテーブルを持つmysqlインスタンスを持つことができると想像します。
- ユーザーID
- データベース/シャードID
データベースキャッシングを無視して、すべてのリクエスト(クエリ)に対して、ユーザーのシャードIDを検索する必要がありますか?それとも、これはセッションごとに最初に1回実行して、ターゲットデータベースと直接通信できるものですか?(あなたは私がサーバーサイドのものに強くないと言うことができるかもしれないので)。
誰かがこれが春にどのように配線される可能性があるかについての高レベルの概要を与えることができますか?現在、私のアーキテクチャは非常に単純です。jdbctemplateを使用する単純なSpringコンポーネントDAOがあります。DAOのデータソースが挿入されます(データソースはapplicationContext.xmlで構成されます)。DAOは私のサービスクラスに自動配線されています。かなり標準的なもの。
前のステップが機能し、スキーマを変更する必要があるとしましょう。スキーマの変更を一度適用して、それを他の100個のデータベースに伝播させるために使用できる管理ツールはありますか?
MySQLを使用しています。「MySQLプロキシ」は問題1と2を解決できるかもしれないと私は信じています。誰かがこれについて何か経験がありますか?スキーマの更新の管理を処理できないと思うので、独自のソリューションをロールする必要があるかもしれません。
ありがとう!
java - Mysql-Proxy がフェイルオーバーしない (?)
mysql-proxy を使用するのはこれが初めてで、コミュニティが以前に取り組んだことがあるかどうか疑問に思っていた奇妙な動作を経験しています。
2 台の mysql サーバーに接続された amazon Linux (ec2 内) で mysql-proxy (0.8.2) を実行しています。Java クライアントはプロキシに接続でき、負荷分散は正常に機能します。
私の問題は次のとおりです。サーバー A に (プロキシ経由で) 接続されているクライアントがあります。フェールオーバーをテストするまでは問題なく動作します。サーバー A を閉じて、クライアントが単純な挿入コマンドを (既に確立された接続で) 実行しようとすると、プロキシが要求をサーバー B にリダイレクトすることを期待していましたが、次の例外が発生しています。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
: 通信リンク障害。
この場合のクライアントは、mysql-connector-java-5.1.17-bin.jar を使用する Java プログラムです。
これを解決する方法はありますか、それともここに何か欠けていますか?
mysql - AmazonクラウドでのMySqlレプリケーションフェイルオーバー
1つのマスター1つのスタンディと1つのスレーブでMySqlレプリケーションを構成しました。マスターとスタンバイは米国東部地域の異なるアベイラビリティーゾーンに配置され、スレーブは米国西部地域に配置されます。スタンバイとスレーブの両方がマスターから複製しています。
アプリケーション層は、マスターからスタンバイへのフェイルオーバーを実行できます。マスターが停止したときにスレーブのレプリケーションをスタンバイに切り替えるため。スタンバイのデータがスレーブのデータと比較して進んでいることを保証する方法はありません。スタンバイのデータがスレーブのデータの背後にある場合は、スレーブのバイナリログとリレーログをスキャンして、不足しているものを見つけてスタンバイに転送する必要があります。それが理論です。
誰かがこれを処理できるツールを知っていますか?または私のコンテキストの代替ソリューション?最終的な目標は、アプリケーション層でのMySqlServerの可用性です。MySql-Proxyを試しましたが、あまり満足していません。MysqlClusterは私たちのオプションではありません。
よろしくお願いします。
mysql-proxy - リモートMySQLサーバーのmysql-proxy
私のプログラムはリモートのMySQLサーバーで動作しますが、処理を高速化するために(プール接続、キャッシュクエリなど)、コンピューター上にローカルプロキシサーバーを作成したいと考えています。私はドキュメントを読みました:http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy.html
私は1つのコンソールで実行しました:
そして別のコンソールで:
ただし、リモートサーバー(qa-srv)でデータベースを表示する代わりに、ローカルサーバーでデータベースを表示しました。
私もこれを試しました:
また、mysqlデーモンの代わりにプロキシを実行してみました。
そして別のコンソールで:
ローカルプロキシ経由でリモートサーバーに接続するようにmysqlクライアントに指示するにはどうすればよいですか?
mysql - mysql-proxyからluaスクリプトを実行する方法
mysqlプロキシからluaスクリプトを実行しようとしています。login.luaというスクリプトを作成しました。mysql-proxyを正常にインストールしました。コマンドを呼び出そうとしましたmysql-proxy --proxy-lua-script=/path/to/login.lua
。次に、mysqlクライアントを起動し、ログインするためのパスワードを入力しました。
mysqlクライアントがmysqlプロキシを呼び出すことを期待しているため、login.luaがコマンドラインで実行されることを期待しています。これは予想される動作ですか?もしそうなら、私はクライアントがプロキシを呼び出す責任がある構成を見逃していますか?
助けてください
mysql - クエリを mysql-proxy または可能な方法で置き換えるにはどうすればよいですか?
mysql-proxy を正常にインストールし、動作方法と lua スクリプトを理解しました。しかし、私はluaを書くのが苦手です。
したがって、私の問題は、Webホスティングに使用するソフトウェアがクエリでOLD_PASSWORD('')を使用してmysqlユーザーを作成し続けることです。mysql-proxy は OLD_PASSWORD('') を新しい PASSWORD('') 値に簡単に置き換える必要があると思います。
私は最近、YouTube でいくつかのチュートリアルを見たことがあります。クエリを置き換える他の方法がある場合は、今すぐ教えてください。
注: クエリはエンコードされており、一部のファイルは実行可能であるため、ソフトウェアからクエリを変更できません。
クエリの例:
予期されるクエリ:
mysql - PHP MySQL DSN 接続 - mysql:// を有効にする方法
このタイプのコマンドを mysql サーバーで有効にするにはどうすればよいですか? また、それは何ですか?
クライアントコードが表示されます:
通常、私は期待します:
mysql - MySQL プロキシ クエリの書き換え
SELECT COUNT(*)
すべてのクエリをSELECT COUNT(1)
(このユースケースの場合)で変更したいと思います。
次の lua スクリプトがありますが、どうにか機能しません。
私は何を間違っていますか?
mysql - MySQL プロキシと基本的なフェールオーバー (検出状態)
私は mysql プロキシ 0.8.2 をインストールして、それで遊んでみました。3306 でリッスンしている 2 台の MySQL 5.5 サーバーと一緒に使用しています。プロキシは 4040 で実行されています。ああ、OS は Win 7 32 ビットです。
私の問題は、mysql プロキシがサーバーの状態をチェックしているように見えないことです。
スクリプトを起動すると、正常に実行されます。しかし、プライマリサーバーをシャットダウンすると、スクリプトはそれを認識していないようです-それでも接続を試みます...