背景 AWS EC2 を使用するプロジェクトサービスがあります。セキュリティとパフォーマンスを考慮して、最近 Tencent Cloud の MySQL データベースを AWS RDS に移行する予定です。AWS のエクスポート ルールとセキュリティ グループにより、デフォルトの 3306 ポートとバインド アドレスを変更して、特定の IP アドレスへのアクセスを制限する必要があります。変更方法について Stackoverflow で検索しましたが、インターネット上のほとんどの情報は古く、現在の主流の MySQL バージョンに準拠していません (MySQL 5.7.27 を使用し、オペレーティング システムは Ubuntu 18.04.1 LTS) プロセス Stackoverflowで最も人気のある回答は非常にシンプルで、わずか3つのステップで変更できます。 /etc/my.cnf // 設定ファイルを見つける port = 3306 // 内容を変更する sudo service mysql restart // MySQL を再起動 しかし、リアルタイムではそれほど単純ではありません。上記の回答は古いバージョンでは機能するかもしれませんが、新しいバージョンでは /etc/my.cnf の下に何も見つかりません。ファイルが存在しないのです。 その後、公式ドキュメントをチェックして、/etc/mysql/my.cnf ディレクトリに設定ファイルを見つけました。ただし、設定ファイルを見つけたからといってすべてがうまくいくとは思わないでください。ファイルを開くと、スタイルが変更されていることがわかります。設定ファイルにはコンテンツがなく、他の 2 つの設定フォルダーを参照しているためです。/etc/mysql/my.cnf の具体的な内容は次のとおりです。 !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ わかりました。少なくとも手がかりは得られました。パスをたどって、2 つのディレクトリ内の各ファイルを確認します。最終的に、mysql.conf.d/mysqld.cnf が探しているファイルのようです (公式ドキュメントでもこれが確認されています)。ファイルを開くと、変更する必要があるファイル プロパティが表示されます。 [mysqld] 利益 = 3306 bind-address = 127.0.0.1 // ローカルアクセスのみ許可 設定パラメータを必要なものに変更した後、問題は解決したと思いました。sudo service mysql restart を使用してサービスを再起動すると、イントラネット マシンにまだアクセスできないことがわかりました。netstat -ntlp を使用してローカル アドレスと外部アドレスを確認したところ、変更した設定が有効になっていないことがわかりました。手がかりがここで途切れたかのように、私は深い自信喪失に陥りました。 その後、一部のネットユーザーは、ファイル権限の問題かもしれないと指摘しました。ファイル権限が大きすぎる場合(グローバルに書き込み可能)、MySQLはセキュリティ上の理由から構成ファイルを読み込まず、独自の構成コピーファイルを読み取ります。コマンドを実行すると、次の警告が表示されました。 mysql --help | grep my.cnf mysql: [警告] 誰でも書き込み可能な設定ファイル '/etc/mysql/mysql.conf.d/mysqld.cnf' 無視されます。 優先順位、my.cnf、$MYSQL_TCP_PORT、 /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 上記は、ファイルがグローバルに書き込み可能であるというリスクがあるため MySQL によって無視されることを意味し、MySQL が構成ファイルを読み取る順序をリストします。ここで、MySQL には複数の my.cnf 構成ファイルがあり、そのうちのいくつかはグローバル構成であり、いくつかはローカル構成であることがわかります。手がかりを見つけた後、処理ははるかに簡単になります。ファイルの権限を変更し、mysql --help を再度確認すると、警告が消えていることがわかります。具体的なコマンドは次のとおりです。 sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf mysql --help | grep my.cnf 優先順位、my.cnf、$MYSQL_TCP_PORT、 /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf その後、sudo service mysql restart を実行し、Local Address と Foreign Address が my.cnf で設定した内容になっていることを確認しましたが、変更した設定は正常に実装されており、ファイルがグローバルに読み取り可能であるというセキュリティ問題が原因であることが確認できました。 要約する 最後に、MySQL セキュリティ ルールが原因で、構成の変更が有効になりませんでした。もちろん、ほとんどの場合、このルールはわかりません (公式 Web サイトのドキュメントを完全に読んでいなければ)。この問題の後、トラブルシューティングで回り道をせずに、できるだけ早く実際の問題を見つけるのに役立つ次の要約を用意しました。
さて、今回の記事は以上です。この記事の内容が皆さんの勉強や仕事に少しでも参考になれば幸いです。123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Windows 10 で MySQL 8.0.12 の解凍バージョンをインストールして構成する方法 (グラフィック チュートリアル付き)
>>: mysqlを完全にアンインストールします。個人テストです!
あいまいクエリにOracleデータベースを使用する場合、コンソール エラーは次の図に表示されます。理...
GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...
<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...
非常に珍しいパラメータ文字化けの問題に遭遇しました。まずページを見てみましょう写真に示すように、月次...
VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...
解決策は2つあります。 1つはCSSで、background-size:coverを使用して画像の伸...
現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...
MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...
新しいプロジェクトは基本的に終了しました。フロントエンドとバックエンドを分離して統合を完了したのは初...
序文JavaScript は習得が最も簡単な言語の 1 つであるため、成長と繁栄を続けており、市場に...
シナリオ: 仮想マシンの Docker コンテナに最新バージョンの MySQL をインストールした後...
問題の説明私たちのプロジェクトでは、水平方向のテーブルが一般的ですが、必要に応じて垂直方向のテーブル...
現在、多くの企業が割引コードを通じてプロモーションを行っています。今では、8桁の割引コードを実装して...
jsvc の紹介実稼働環境では、Tomcat はデーモン モードで実行する必要があります。Tomc...
技術的背景Latex は文書作成、特に記事作成には欠かせないツールであり、必須のテキスト組版ツールで...