MySQLは、ユーザの入力ミスパスワード試行回数を制御する。


一、生産環境MySQLのデッドロックはどのように監視し、どのようにデッドロック発生の確率を減らすか?
まず、デッドロックは「ロック死」ではなく、デッドロックは二つ以上の会話ロックが発生する回路のためです。
(一)デッドロック監視及び処理方法
デッドロックの監視には、各バージョンがinnodb_を提供しています。printall_deadlocksオプションは、このオプションをオンにするとロックされたログがMySQLのエラーログに出力されますので、エラーログを監視することでデッドロックを監視することができます。MariiaDBはもっと簡単になります。Maring DBはInnodb_を提供しました。deadlocksのカウンタは、このカウンタの成長を監視することにより、デッドロックが発生しているかどうかを監視することができる。
もしオンラインでデッドロックが発生し、頻度が高いなら、必ず重視してください。デッドロックログは最後にデッドロックを引き起こした二つのSQLのみを記録しているので、ログをデッドロックしてすぐに位置決めすることはできません。
デッドロックの原因を出して、直ちに共同開発してデッドロックの過程を模擬して、デッドロックの発生原因を分析して、プログラムのロジックを修正しなければなりません。
(二)どうやってデッドロックが発生する確率を下げるか?
1、大きな仕事を避けるために、できるだけ短い事務を使う
2、FOR UPSDATE/LOCK IN SHARE MODEロックを加える場合、事務分離レベルを低くしたほうがいいです。例えばRCレベルでデッドロック発生確率を下げてもいいです。ロック粒度を下げることができます。
3、事務に複数の表が含まれている場合、または複数行の記録に関わる場合、各事務の操作順序は一致していなければならない。
4、索引を通じてSQL効率を最適化し、デッドロック確率を低減し、全表スキャンによる全データのロックを避ける。
5、プログラムには事務の失敗の検出と自動的な繰り返しの提出メカニズムがあるべきです。
6、高合併(秒殺)シーンでは、innodb_をクローズする。deadlock_detectオプションで、デッドロック検出オーバヘッドを低減し、合併効率を向上させる。
二、MongoDBの優れた特性と適切なシーンは何ですか?
(一)優れた特性
1、実用性:Jsonリッチ文書のデータモデルに向かって、開発者の天然に対する友好
2、利用可能性:raftプロトコルに基づく自動高利用、気楽に99.99%の利用可能性を提供する。
3、拡張性:スライスクラスタのサポートに対して、業務に友好的なレベル拡張を提供しています。
4、高機能:ネストモデルの設計サポートは、離散的な書き込みを減少させ、十分な物理メモリの利用率は、ディスクの読み取りを回避しました。
5、強圧縮:WiredTigerエンジンは複数のデータ圧縮戦略を提供し、2~7倍の圧縮比を提供し、ディスク資源を大幅に節約しました。
(二)適切なシーン
1、複数文書の事務及び複数表の関連クエリの需要がない
2、業務の高速反復、需要の頻繁な変動業界
3、単一クラスタを併発しすぎて、業務の成長をサポートできません。
4、データ量の増加予想TB及び以上の保存需要
5、99.99%のデータベースの高利用シーンが望ましい。
三、GO言語は他のプログラミング言語と比べて何のメリットがありますか?実際の生産環境はどうやって取捨選択しますか?
1、生まれつき高合併を支持し、強い一致言語で、開発効率が高く、オンライン運行の安定と安全を兼ね備えています。
2、ゴミの回収は、メモリの割り当てと回収に関心がない
3、強力なGMPモデル、非同期処理、高合併をサポートし、白も簡単に高合併コードを書くことができます。
実際の生産環境において、次のいくつかの点から考えてください。
1、ビジネスシーンを見て、エレクトビジネス、ビッグデータ処理には既存の解決案があります。また数学演算も、cpu密集型のものは不要です。
2、GOは業務のプロトタイプを素早く出すことが得意で、反復開発の効率が高く、初めて会社を作って強く押します。
3、会社が開発した技術スタックを見て、違いが大きいなら、GOを選ぶと、より早くて、プログラミングのスタイルも統一できます。
四、大きな仕事があります。たくさんの更新があります。今は転覆されましたが、電源を切って再起動したいです。どうすればいいですか?
1、まず、MySQLで大きな仕事を実行することをできるだけ避けます。大きな仕事は主従コピーの遅延などの問題をもたらすからです。
2、大きな仕事がキルルによって、MySQLは自動的にロールバック操作を行います。ショーengine innodb statusのTRANSACTIONSを通じて、ROLLING BACKの仕事が見られます。ロールバック操作時にも対応するラインロックを持っています。
3、この時、MySQLを強制的に閉じて、MySQLが再度起動するまでは、ロールバック動作を行います。
4、そのため、データの安全を確保するために、ロールバックが完了したら再度シャットダウンして再起動することを提案します。電源を切って再起動する前に、innodb_を低くすることができます。max_dirtypages_汚いページをできるだけ更新して、innodb_をオフにします。fast_shutdown
5、どうしてもシャットダウンが必要でない場合、Kill-9は先にMySQLをオフにしてもいいです。前提は二つのセットで事務の安全を保証しなければならないです。そうでなければ、もっと多くの事務データを失うかもしれません。その後、インスタンスを再起動するとinnodbは自分でcrash recoveryをロールバックする前のトランザクションを返します。
PS、Kill-9はハイリスク操作で、MySQLが起動できなくなるなど予知できない問題がありますので、慎重にご使用ください。
五、どのようにUPDATE/DELETEを下げるか、WHEREの条件が間違っているか、またはWHEREの条件による影響を全く書いていないか?
1、できるだけオンラインでSQL命令を実行しないでください。間違いが起こりやすいです。オンラインで直接SQL命令を実行するには、第二の検査者の確認が必要です。
2、テスト環境でSQLを実行して、間違いがないことを確認してから、生産環境で実行するか、或いは地元の文書環境で編集して確認してから実行するほうがいいです。
3、sql_を開くことを提案しますsafe_udatesオプションは、WHERE条件がない、またはLIMITがない、またはインデックス条件を使用していないUPDATE/DELETEコマンドが実行されることを禁止します。mysqlクライアントでサーバーに接続する際に、safe-udatesオプションを追加することもできます。例えば、mysql--safe-udates-h xx-u xx
4、オンラインで手動でDML操作を実行する場合、先に事務モードを起動し、もし誤操作したら、ロールバックできます。例えば:mysql>begin;udate xxxrollback;
5、DB管理プラットフォームでDML操作を実行し、プラットフォームにこのような危険SQLに対する判断を追加し、危険SQLの実行を直接拒否する。
6、配置遅延ライブラリから、誤ってデータを削除したことを発見した後、遅延からライブラリからデータを迅速に回復する
六、MySQLはどのようにユーザの入力ミスパスワード試行回数を制御しますか?
(一)プラグインのサポート
公式MySQL 5.7.17より、CONNEECTION_を提供しています。CONTROLとCONNIECTION_CONTROL_FAILE_LOGIN_ATTEMPTSプラグインは、さらにconnection(u)を提供しています。control.failed_connectionsthreshld、connectioncontrol.min.connectiondelay、connection_control.max_connectiondelay 3つのパラメータ
1、connection_control.failed_connectionsエスホルド
このパラメータの意味は、ログイン失敗回数を制御してからログイン遅延を開始することです。
2、connection control minconnection delay
このパラメータは、失敗回数を超えた後、再接続するたびに最小の遅延時間を表します。遅延計算式は、(現在の失敗回数-失敗閾値)です。
connection control minconnection_delayですので、試行回数が多いほど遅延時間も大きくなります。
3、connection_control.max_connectiondelay
最大遅延時間は、この値を超えたらクライアントが再接続できます。
4、プラグインをインストールしたら、モニタConnectionを通じてcontrol.delay_generated状態値とINFOREMATION_SCHEMA下の表
CONNEECTION_CONTROL_FAILE_LOGIN_ATTEMPTSは、エラー登録試行回数を監視します。
(二)エラーログモニタ
タイムマシンでMySQLエラーログをスキャンして、アカウントのパスワードエラー回数を獲得します。ある閾値に達したら、システムファイアウォールで対応するホストipを遮蔽アカウントの目的に達することができます。(具体的な操作は状況によって異なります。)
例えば、エラーログは2019-05-10 T 13:04:41.23259 Z 5[Note]Access denied for user 'xucl'@'127..0.1'(using password:YES)を表示します。
(三)その他の説明
1、一部の学生はmax_と勘違いしています。connectionerrorsは、エラーパスワードの試行回数を制御することができます。このパラメータは、telnetのようなポート探査、すなわちプロトコルの握手エラーの回数を記録することしかできません。
2、最後に、生産環境では必ずaboorted_に注目してください。clientsとaboorted_connectsの状態、異常が発生したら速やかに注意しなければならない。
締め括りをつける
以上は小编でご绍介したMySQLがユーザーを制御してパスワードを入力して试した回数です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。