編集済み 3 数日前 によって ExtremeHow 編集チーム
データベースXAMPPマイエスキューエルリモート接続開発サーバー設定ローカルホストウィンドウズネットワーキング
翻訳が更新されました 2 数週間前
Webアプリケーションの開発には、データを管理するためにデータベースに接続する必要があることがよくあります。Web開発で一般的なスタックの1つがXAMPPで、これはApache、MySQL、PHP、Perlなどのツールを含んでいます。この組み合わせは、世界中の開発者に広く使用されています。しかし、開発者がさまざまな理由でリモートMySQLデータベースにローカルのXAMPP環境を接続する必要がある場合があります。例えば、集中管理されたデータにアクセスするため、実際のデータを使用して開発やテストを行うため、または一貫性を保つために単一のソースデータベースを維持するためなどです。
このガイドでは、XAMPPをリモートMySQLデータベースに接続するプロセスを紹介します。このプロセスを理解することは重要です。特に、アプリケーションが開発環境とは異なる場所にホストされているデータベースと対話する必要がある場合には。
開始する前に、リモートMySQLサーバーがリモート接続を受け入れるように構成されていることを確認する必要があります。このステップは、XAMPPがインストールされているローカルマシンから外部アクセスを許可するために必要です。
リモートサーバー上のMySQL構成ファイルを見つけます。このファイルは通常my.cnf
またはmy.ini
と命名されています。このファイルは通常、Unix系システムでは/etc/mysql/
ディレクトリにあり、WindowsシステムではMySQLインストールディレクトリにあります。
テキストエディタでファイルを開き、次の行を見つけます:
bind-address = 127.0.0.1
この行は、MySQLが現在localhost(つまり、それがインストールされているサーバー)からのみの接続を受け入れるように構成されていることを意味します。リモート接続を許可するためには、この行をコメントアウトするか、IPアドレスをサーバーのIPアドレスまたは任意のIPアドレスからの接続を許可する0.0.0.0
に変更する必要があります。
編集後、この行は次のようになります:
# bind-address = 127.0.0.1
コマンドラインクライアントやphpMyAdminといったデータベース管理ツールを使って、リモートMySQLサーバーに接続します。以下のSQLステートメントを実行し、特定のユーザーに特定のデータベースへのリモートアクセスを許可します。MySQLのルートまたは十分な権限を持つアカウントを使用してください:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
上記のクエリでは、'username'
をMySQLのユーザー名に置き換え、'password'
を実際のパスワードに置き換え、'%'
を特定のIPアドレスに置き換えてアクセスを制限するか、任意のIPアドレスからのアクセスを許可するためそのまま'%'
にしておきます。
リモートサーバー上でファイアウォールが稼働している場合、対応するポートを開けてトラフィックを許可する必要があるかもしれません。MySQLは通常、ポート3306
で動作します(特に指定がない場合)。
MySQL接続のためにポート3306
を開くには、適切なコマンドラインコマンドまたは管理インターフェースを使用する必要があります。お使いの特定のファイアウォールのドキュメントを参照して、この手順を行ってください。
設定が完了したら、MySQLサーバーがリモート接続を受け入れるように設定されたので、XAMPP環境を使用してリモートデータベースに接続するようアプリケーションを構成できます。
通常、XAMPPにはphpMyAdminが付属しています。phpMyAdminを使用してリモートデータベースにアクセスするには、config.inc.php
ファイルを編集して構成する必要があります。このファイルはphpMyAdminのインストールディレクトリ(例: C:\xampp\phpMyAdmin\
)にあります。
config.inc.php
ファイルを開き、サーバー設定セクションを見つけ、以下のようにリモートサーバーの認証情報で構成します:
$i++; $cfg['Servers'][$i]['verbose'] = 'Remote Server'; $cfg['Servers'][$i]['host'] = 'remote-server-ip'; $cfg['Servers'][$i]['port'] = '3306'; // If using the default port $cfg['Servers'][$i]['user'] = 'your-username'; $cfg['Servers'][$i]['password'] = 'your-password'; $cfg['Servers'][$i]['auth_type'] = 'config';
ファイルを保存し、XAMPPコントロールパネルからApacheを再起動して変更を適用します。
XAMPPで動作するPHPアプリケーションがリモートデータベースにプログラム的に接続する必要がある場合、PHPスクリプトでリモートサーバーの接続パラメータを指定する必要があります。以下はその例です:
<?php $servername = "remote-host-ip"; $username = "your-username"; $password = "your-password"; $dbname = "database-name"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $conn->close(); ?>
$servername
、$username
、$password
、$dbname
変数をリモートサーバーの認証情報と情報で置き換えてください。
リモートデータベースを扱う際、特にそれがインターネットに公開されている場合、セキュリティは重要な問題となります。MySQLデータベースへの安全な接続を確保するためのベストプラクティスを以下に示します:
XAMPPをリモートMySQLデータベースに接続しようとする際に問題が発生することがあります。以下は一般的な問題とその解決策です:
my.cnf/my.ini
構成を確認し、サーバーのファイアウォールが要求をブロックしていないかどうかを確認してください。XAMPPをリモートMySQLデータベースに接続することは、開発ワークフローを改善し、集中管理されたデータと効率的にデータベースを管理するのに役立ちます。サーバー、ファイアウォール、およびローカル環境を正しく構成することで、アプリケーションがその場所に関係なくデータベースとシームレスに対話できるようにします。このプロセスの間、常にセキュリティを考慮してデータの完全性とセキュリティを確保してください。
記事の内容に誤りがある場合, あなたは