これがMySQLの場合、データベースサーバーのネットワーキングはデフォルトで有効になっていません。 MySQLでネットワーキングを有効にするには、my.cnfという名前のアクティブなMySQL構成ファイルを見つける必要があります。 。そしてそれを編集します。
Ubuntu 12.04でこれを行う方法を説明しますが、手順はほとんどのLinuxインストールで同様です。
MySQLネットワーキングを有効にする
まず、nanoなどのエディターを使用してファイルを開きます 。 sudoを介してコマンドを実行する必要がある場合があります :
sudo nano /etc/mysql/my.cnf
次に、bind-addressを使用して構成ファイル内の領域を探します オプション:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
次に、そのbind-addressを変更します 次のように設定します:
bind-address = 0.0.0.0
これが完了したら、ファイルを保存して、次のようにMySQLを再起動します。
sudo service mysql restart
これで、MySQLデータベースはリモートマシンからローカルホスト以外の接続を利用できるようになります。
MySQLポートを確認する3306 オープンです
ただし、ネットワーキングが有効になっている場合でも、nmapなどのネットワーキングツールを使用してコマンドラインからリモートマシンに接続できるかどうかを確認する必要があります。 。 192.168.1.10にファイアウォールがある可能性があります MySQLポートのブロック3306 したがって、次のように開いているか閉じているかを確認する必要があります:
nmap 192.168.1.10 -p3306
そして、ポート3306 開いている場合、これが応答になります。 openに注意してください STATEの下 :
Starting Nmap 6.40 ( https://nmap.org ) at 2014-06-10 10:34 EDT
Nmap scan report for 192.168.1.10
Host is up (0.0035s latency).
PORT STATE SERVICE
3306/tcp open mysql
ただし、ポート3306の場合 閉じている場合は、これを取得します。 closedに注意してください STATEの下 :
Starting Nmap 6.40 ( https://nmap.org ) at 2014-06-10 10:34 EDT
Nmap scan report for 192.168.1.10
Host is up (0.0035s latency).
PORT STATE SERVICE
3306/tcp closed mysql
MySQLユーザー許可を確認する
これですべてが完了し、MySQLデータベースサーバーにネットワーク上でアクセスできるようになります。ただし、使用しているデータベースユーザーがLAN上のリモートマシンから接続できることを確認する必要があります。したがって、MySQLにログインし、次のコマンドを実行して、ユーザーに付与される可能性のあるものを確認します。
SELECT user, host FROM `mysql`.`user`;
これにより、MySQLでそれらのユーザーに接続しているユーザーとホストのリストが表示されます。ほとんどのユーザーには、localhostへのアクセス権限しか付与されていません。 または127.0.0.1 。 %のワイルドカードホストが付与されているものもあります 。そのリストを見て、使用するユーザーがワイルドカードホスト(%)を持っているかどうかを確認する必要があります )またはそれらに接続されている特定のIPアドレス。ユーザーのGRANTを確認できます ■このような行を実行する。もちろん、[your_database_user]を変更します および[hostname] 設定に合わせて:
SHOW GRANTS FOR '[your_database_user]'@'[hostname]';
利用可能なGRANTのリストが表示されます。 ■特定のホスト上のユーザーの場合。 GRANTがある場合 ■ワイルドカード%の使用などのリモートアクセスを許可する ホスト-これですべての設定が完了しました。 GRANTがない場合 ■次のMySQLコマンドを実行できます。もちろん、[your_database]を変更します および[your_database_user] 設定に合わせて:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `[your_database]`.* TO '[your_database_user]'@'192.168.0.0/255.255.0.0';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `[your_database]`.* TO '[your_database_user]'@'10.0.0.0/255.0.0.0';
FLUSH PRIVILEGES;
両方のGRANT 行は、かなり標準的なアクセス権のセットをデータベースに適用します。最初の行は、192.168.x.xのLANネットワーク範囲内のすべての接続にそれらを適用します 。 2行目は、10.x.x.xのLANネットワーク範囲内のすべての接続にそれらを適用します。 。私はそれを内部ネットワークのすべての基盤をカバーするために行うのが好きです。最後のFLUSH PRIVILEGES; lineは基本的に、MySQLにユーザー権限テーブルをリロードしてそれらの付与を有効にするように指示します。