MySQLへのリモート接続を許可する方法
MySQLデータベースを使用している場合は、データベースを安全に保つために直面する課題をすでに認識しています。 SQLインジェクションを使用したデータベースハッキングの試みからブルートフォース攻撃まで、特にデータベースをリモートで操作している場合は、データを安全に保つことは困難です。
リモート接続を許可するようにSQLサーバーを構成する方法はいくつかありますが、MySQLサーバーでリモート接続を許可すると、データベースがハッカーの標的になりやすいため、注意が必要です。 MySQLデータベースへの安全なリモート接続を許可する場合は、次のことを知っておく必要があります。
始める前に
MySQLデータベースに変更を加える前に、データベースをバックアップすることが重要です。 特に、運用サーバー(アクティブに使用されているサーバー)で作業している場合。データベースまたはデータベースをホストしているサーバーに変更を加えると、問題が発生した場合に重大なデータ損失が発生する可能性があります。
また、サーバーの接続を変更すると、後でサーバーにアクセスできなくなる場合があります。これが発生した場合は、さらにサポートを受けるためにサーバー管理者に相談する必要がある場合があります。ローカルで実行されているMySQLサーバーで変更を試し、リモートで試す前に変更が機能するかどうかを確認することをお勧めします。
また、リモートサーバーに変更を加える場合は、接続して変更を加えるための安全な方法が必要になる可能性もあります。 SSH(セキュアシェル) これを行うには、リモートサーバーに接続できるため、多くの場合、これが最善の方法です。 SSHを使用して、RaspberryPiでホストされているサーバーなどのローカルネットワーク上のサーバーに接続することもできます。
このガイドでは、リモート接続を許可するようにMySQLを構成する手順について説明しますが、最初にMySQLサーバーをホストしているサーバーに直接またはリモートアクセスできるようにする必要があります。
たとえば、SSH経由でサーバーにリモートアクセスできないとします。その場合、ルートmySQLアカウントがすでにリモート接続を許可していない限り、リモート接続を直接許可するようにMySQLデータベースを構成することはできません。したがって、先に進む前に、まずこの接続を確立する必要があります。
MySQL構成ファイルの編集
リモート接続を許可するようにMySQLを構成する最初のステップは、MySQL構成ファイルを編集することです。この段階までに、このガイドでは、mySQLデータベースをリモートでホストしているサーバー、PC、またはMacにすでに接続しており、コンソールにアクセスできることを前提としています。
または、MacまたはLinuxの場合はオープンターミナル、Windowsの場合はテキストエディタを使用して、ローカルMySQLサーバーを構成できます。
- 開始するには、お好みのコンソールテキストエディタを使用してMySQLデータベースファイルを編集します。 Linuxでは、 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfと入力します。 nano を使用してこのファイルを編集するには、ターミナルまたはSSHウィンドウに移動します エディター(MySQLデータベースがデフォルトの場所にあると仮定)。
- Windowsを実行している場合は、ファイルエクスプローラーを開き、MySQLインストールを含むフォルダーにアクセスします(例: C:/ Program Files / MySQL / MySQL Server 8.0 )。 my.iniを開きます エントリをダブルクリックして、デフォルトのテキストエディタ(メモ帳など)を使用してファイルを作成します。そこにない場合は、最初にファイルを作成します。
- Macの場合、ターミナルウィンドウを開き、 sudo nano /usr/local/etc/my.cnfと入力します。 。これは、homebrewを使用してMySQLをインストールした場合のMySQLのデフォルトの構成ファイルです。
上記で参照されている場所は、MySQL構成ファイルのデフォルトの場所です。これらのコマンドが機能しない場合は、関連するファイル( my.cnf )を検索する必要があります 、 mysqld.cnf 、または my.ini )手動で関連するファイルパスを見つけます。
安全なバインドアドレスIP範囲の設定
- サーバーのMySQL構成ファイルを開いたら、キーボードの矢印キーを使用してバインドアドレスにアクセスします。 ファイルのセクション。このIP範囲は、データベースへの接続を制限します。これは通常、 127.0.0.1を使用するローカルマシンまたはサーバーからの接続のみを許可するように設定されています。 。
- 現在のインターネット接続を使用するデバイスからの接続を許可するようにMySQLデータベースを構成する場合は、最初にパブリックIPアドレスを見つけてから、 127.0.0.1を置き換えます。 そのIPアドレスで。または、接続を許可するデバイスまたはサーバーのIPアドレスに置き換えます。
- 状況によっては、すべてを許可したい場合があります MySQLデータベースへのリモート接続。これには極度のリスクが伴います 実稼働サーバーでは使用しないでください。ただし、これを許可する場合は、 127.0.0.1を置き換えてください 0.0.0.0 。
- ポートをメモします 基本設定の値 セクション。これは次のセクションで必要になります。表示されていない場合は、デフォルト値であるポート 3306が使用されます。 。 port =xxxx と入力すると、独自のポートを追加できます 新しい行で、 xxxxを置き換えます 適切なポート値を使用します。
- bind-addressを設定したら MySQL構成ファイルに、ファイルを保存します。 Linuxを使用している場合は、 Ctrl + Oを選択します およびCtrl+ X これをする。 Macでは、コマンド+ Oを選択します およびコマンド+X 。 Windowsユーザーは、ファイルを選択して保存できます>保存 。
- 次に、LinuxおよびMacユーザーは、 mysql.server stop &&mysql.server start と入力して、MySQLを再起動できます。 またはmysql.serverrestart 。 sudoを使用してコマンドを昇格させる必要がある場合があります(例: sudo mysql.server restart )、mysql.serverファイルへの適切なパスを使用します(例: /usr/local/bin/mysql.server 。
- 上記のコマンドが機能しない場合は、 sudo service mysql restartを試してください。 代わりに。
- WindowsでMySQLを再起動するには、[スタート]メニューを右クリックし、[ Windows PowerShell(管理者)]を選択して、新しいPowerShellウィンドウを開きます。 。 PowerShellウィンドウで、「 net stop mysql80」と入力します。 続いてnetstart mysql80 、 mysql80を置き換えます PCの正しいサービス名で。
Windowsで正しいサービス名がわからない場合は、 net startと入力します。 それを見つけるために。 構成を再読み込みできない場合は、サーバーを再起動し、代わりに手動で(必要に応じて)MySQLを再読み込みしてください。
ファイアウォールの構成
この段階で、MySQLデータベースは、 bind-addressとして設定したIPアドレスを使用したデバイスからのリモート接続を許可する必要があります。 MySQL構成ファイルの値(または、この値を 0.0.0.0 に設定した場合はすべてのデバイスから) 代わりは)。ただし、接続は引き続きデバイスまたはネットワークファイアウォールによってブロックされます 。
ほとんどのサーバーとPCは、特定のポートへのアクセスが許可されていない限り、ファイアウォールを使用して接続をブロックします。これを構成する手順は、WindowsとLinuxのどちらでMySQLを実行しているかによって異なります。 Macファイアウォールはデフォルトで無効になっているため、ここで追加の手順を実行する必要はありません。
Linuxファイアウォールの構成
多くのLinuxサーバーはiptablesを使用しています デフォルトのファイアウォールユーティリティとして。以下の手順に従って構成できます。
- ターミナルまたはSSH接続を開き、 sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j ACCEPTと入力します。 。 X.X.X.Xを置き換えます MySQL接続をから許可するデバイスのIPアドレス 、 YYYYを置き換えます MySQL構成ファイルからの一致するポート値(例: 3306 。
- これにより、ファイアウォールが一時的に構成されます。 DebianまたはUbuntuベースのLinuxサーバーを使用している場合は、 sudo netfilter-persistent save と入力して、この変更を永続的にします。 およびsudonetfilter-永続的なリロード ターミナルまたはSSHウィンドウに移動します。
iptablesがLinuxディストリビューションのデフォルトのファイアウォールツールでない場合、詳細についてはディストリビューションのユーザーマニュアルを参照する必要があります。特定のパッケージ( netfilter-persistent など)の場合 )が利用できない場合は、ディストリビューションのソフトウェアリポジトリツールを使用してインストールします(例: sudo apt install netfilter-persistent 。
Windowsファイアウォールの構成
Windows PCまたはサーバーを使用してデータベースをホストしている場合は、次の手順を使用してファイアウォールを構成できます。
- [スタート]メニューを右クリックして、[実行]を選択します 。
- 実行で ボックスに「wf.msc」と入力します OKを選択します 。
- Windows Defender ウィンドウで、インバウンドルールを選択します>新しいルール 。
- 新しいインバウンドルールウィザード ウィンドウで、ポートを選択します>次へ 。
- 次のメニューで、 TCPを選択します オプションから、「 3306」と入力します (またはMySQL構成ファイルにリストされているポート値のいずれか)、[次へ]を選択します 。
- アクションで メニューで、デフォルトのオプションを接続を許可するのままにします 有効にしてから、[次へ]を選択します 。
- ルールをすべてのネットワークタイプに適用することを確認してから、[次へ]を選択します 。
- ルールのわかりやすい名前を入力します(例: MySQL )提供されたポートで、[完了]を選択します ファイアウォールルールのリストに追加します。
接続に問題がある場合は、上記の手順を繰り返して、新しいアウトバウンドルールを作成してください。 同じ詳細(ポート3306など)を使用してファイアウォール設定で。また、データベースへのインバウンド接続とアウトバウンド接続を許可するために必要なブロックされたポートを開くようにローカルネットワークルーターを構成する必要がある場合もあります。
MySQLを使用したリモートサーバーへの接続
リモート接続を許可するようにMySQLデータベースを構成した後、実際にデータベースへの接続を確立する必要があります。 mysqlを使用してこれを行うことができます コマンド( mysql.exe Windowsの場合)ターミナルまたはPowerShellウィンドウから。
Windowsを実行している場合は、開始する前にMySQLがローカルにインストールされていることを確認する必要があります。 Macユーザーは、ターミナルからhomebrewを使用してMySQLをインストールできます( brew install mysql )、Linuxユーザーはローカルアプリリポジトリを使用できます(例: sudo apt install mysql )必要なパッケージをインストールします。
LinuxまたはMacでのMySQLへの接続
- MacまたはLinuxでリモートMySQLサーバーに接続するには、新しいターミナルウィンドウを開き、 mysql -u username -h X.X.X.X:XXXX -pと入力します。 。 X.X.X.X:XXXXを置き換えます リモートサーバーのIPアドレスとポート番号を使用します(例: 100.200.100.200:3306 )およびユーザー名 MySQLユーザー名を使用します。
- プロンプトが表示されたら、パスワードを確認します。接続が成功すると、ターミナルに成功メッセージが表示されます。
WindowsでMySQLに接続する
- Windows上のリモートMySQLサーバーに接続するには、[スタート]メニューを右クリックし、[ Windows PowerShell(管理者)]を選択して、新しいPowerShellウィンドウを開きます。 。
- 新しいPowerShellウィンドウで、 cd“ C:\ Program Files \ MySQL \ MySQL Workbench 8.0 \と入力します。 」をクリックして正しいフォルダに入り、このディレクトリをPC上の正しいインストールディレクトリに置き換えます。たとえば、MySQLのバージョンが8.0.1の場合は、 MySQL Workbench 8.0.1を使用します。 代わりにフォルダ。
- そこから、。\ mysql.exe -u username -h X.X.X.X:XXXX -pと入力します。 。 X.X.X.X:XXXXを置き換えます リモートサーバーのIPアドレスとポート番号を使用します(例: 100.200.100.200:3306 )およびユーザー名 リモートアクセスを許可するMySQLユーザー名( root など) )。画面上の追加の指示に従います。
- プロンプトが表示されたら、パスワードを入力して、サインインプロセスを完了し、MySQLデータベースにリモートでアクセスします。
これが機能しない場合は、次の手順と -h localhost を使用して、SSHを使用して(または直接アクセスして)MySQLサーバーをホストしているサーバーまたはPCに接続します。 口論。次に、以下の手順に従って適切なユーザーアカウントを作成できます。
MySQLデータベースへのリモートユーザーアクセスの許可
この時点で、サーバーのrootユーザーアカウントまたは昇格された権限を持つ別のユーザーアカウントを使用して、MySQLサーバーにリモートで接続できるようになります。このレベルのアクセスは安全ではないため、MySQLデータベースにアクセスするためのより制限されたアカウントを作成することをお勧めします。
このアカウントはMySQLサーバーへのアクセスが制限され、選択したデータベースとのみ対話できるようになります。他のデータベースデータへのアクセス、新しいユーザーアカウントの作成など、より深刻な変更を加えることはできません。
MySQLサーバーにリモートでサインインする機能が必要です。ルートアカウントをリモートで使用できない場合は、 mysqlを使用してサーバーのシェルにアクセスする必要があります リモートSSH接続を介して、またはサーバーをホストしているPCまたはサーバーに直接アクセスしてコマンドを実行します。
- リモートMySQLシェル内( mysql を使用) ツール)、「 CREATE USER“ username” @” x.x.x.x” IDENTIFIED BY“ password”;と入力します。 Enterを選択します 。 ユーザー名を置き換えます 作成するユーザー名を使用して、 x.x.x.x 接続元のIPアドレスとパスワード 適切なパスワードを使用してください。
- 新しいアカウントに必要な権限を付与する必要があります。これを行うには、 GRANT ALLONdatabasename。*TOusername @” x.x.x.x”;と入力します。 データベース名、ユーザー名、を置き換えます およびx.x.x.x 正しい詳細で。必要に応じて、データベース名を置き換えます *を使用 すべてのデータベースへのアクセスを許可します。
アクセスが許可されたら、上記のセクションの手順を使用して、新しいアカウントを使用してサーバーにリモート接続します(例: mysql -u username -h X.X.X.X:XXXX -p 。
データベースデータの保護
MySQLを使用している場合でも、別の種類のSQLデータベースを使用している場合でも、データのセキュリティを維持するには、接続を安全に保つことが重要です。これを行う良い方法は、古い(そして簡単に推測できる)パスワードに頼るのではなく、サーバーにリモートアクセスするためのSSHキーを生成することです。
データの損失が心配な場合は、データベースをオンラインで簡単にバックアップできます。ほとんどのデータベースはLinuxサーバーを使用して実行されます。Linuxファイルのバックアップを簡単に自動化できます。 WindowsでMySQLを実行している場合は、Windows用に同様の自動バックアップシステムをセットアップして、緊急時にデータを復元できるようにすることができます。
-
Mac でリモート サーバーまたはローカル サーバーに接続する方法
Mac をローカル サーバーまたはリモート サーバーに接続すると、その特定のサーバーで利用可能なすべてのファイルにアクセスできます。 macOS にはデフォルトでサーバー接続機能があり、Mac を任意のサーバーに制限なく接続できます。その後、通常のディスク ドライブとして Finder に表示され、そこからファイルにアクセスしたり、操作したり、ファイルを削除したりできます。 サーバーをストレージとしてマシンにマウントするには、いくつかの方法があります。 macOS に組み込まれているネイティブ機能を使用してそれを行うことができ、サードパーティのアプリを使用して Mac 上のサーバーにアクセス
-
Windows 10 PC へのリモート デスクトップ接続を有効にする方法
デスクから離れて作業しているときは、Windows のリモート デスクトップ接続を使用して PC にアクセスできます。着信リモート デスクトップ接続が受け入れられると、別のデバイス (Windows、Mac、iOS、または Android) から PC をリモートで使用できるようになります。この機能を有効にするには、Windows 10 Pro または Enterprise が必要です。 まず、設定アプリ (Win+I キーボード ショートカット) を開き、[システム] カテゴリをクリックします。左側のメニューの下部にある [リモート デスクトップ] ページをクリックします。 画面の上