ローカルのphpMyAdminクライアントでリモートサーバーにアクセスする方法


134

リモートサーバーがあり、phpMyAdminクライアントがコンピューターのローカルにインストールされていると仮定します。このサーバーにアクセスしてphpMyAdminクライアント経由で管理するにはどうすればよいですか?それは可能ですか?


1
phpmyadminDockerイメージをローカルにインストールして、リモートのMySQLサーバーに接続することもできます。詳細はこちらdocker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin
Xiao

回答:


175

/etc/phpmyadmin/config.inc.php下部のファイルに以下の行を追加してください:

$i++;
$cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default
$cfg['Servers'][$i]['user'] = 'userName';   //user name for your remote server
$cfg['Servers'][$i]['password'] = 'Password';  //password
$cfg['Servers'][$i]['auth_type'] = 'config';       // keep it as config

。「現在のサーバー:」ドロップダウンに「127.0.0.1」と、サーバー間の「$ cfg ['Servers'] [$ i] ['host']」カムスイッチで提供したものの両方が表示されます。

詳細:http : //sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/


16
これ$i++は、デフォルトでデータベース接続が失われることはないため、重要なポイントですlocalhost
Gaurav Ramanan 2014

また、phpMyAdminで設定した後、この投稿の手順に従って動作させる必要がありました。
Ahmed Akhtar

2
/etc/phpmyadmin/config.inc.php変更する正しいファイルです
Xiao

上記の方法は完全に正しいですが、なぜリモートmySqlに自分のIPアドレスを追加するか追加する必要があると私に言わなかったのですか。それ以外の場合は機能しません。友人もこれに注意してください
Jaydeep Goswami '28

誰かがAppleシステムで作業している場合、config.inc.phpファイルは Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.phpfileにあります。
Anirudha Mahale

23

他の回答が指摘しているように、phpMyAdminのローカルインスタンスからリモートMySQLサーバーにアクセスすることは確かに可能です。そして、それが機能するためには、リモート接続を受け入れるようにリモートサーバーのMySQLサーバー構成し、 MySQLがリッスンしているポート番号に対してファイアウォールを通過するトラフィックを許可する必要があります。私はSSHトンネリングを含む少し異なるソリューションを好みます。

次のコマンドは、ローカルマシンからポート3307に対して行われたすべての要求をリモートマシンのポート3306に転送するSSHトンネルをセットアップします。

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

プロンプトが表示されたら、リモートマシンのrootユーザーのパスワードを入力する必要があります。トンネルが開きます。これをバックグラウンドで実行する場合は、-f引数を追加し、ローカルマシンとリモートマシンの間にパスワードなしのSSHを設定する必要があります。

SSHトンネルが機能するようになったら、/etc/phpmyadmin/config.inc.phpファイルを変更して、リモートサーバーをローカルのphpMyAdminのサーバーリストに追加できます。ファイルの最後に次を追加します。

$cfg['Servers'][$i]['verbose']       = 'Remote Server 1';// Change this to whatever you like.
$cfg['Servers'][$i]['host']          = '127.0.0.1';
$cfg['Servers'][$i]['port']          = '3307';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysqli';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'cookie';
$i++;

さらにヘルプが必要な場合に備えて、これについての詳細なブログ投稿を作成しました。


1
これは安全なソリューションだと思います。リモートアクセスをダイレクトするためにmySQLを開放することは、絶対に必要でない場合、一般的には不十分なセキュリティプラクティスと見なされます。
2014

1
c.hillの答えは正しくありません。注意:mysql my.cnfファイルで、バインドアドレスをループバックアドレスに設定する必要があります。

リモートホストのrootである必要はありません。橋は完璧に機能します、ありがとう!configについてはよくわかりませんが、Suresh Kamrushiの回答をお勧めします。$++少なくとも私のデフォルトのphpmyadmin.confでは、間違いなく最初の行で最後ではないはずです。
frnhr

$ cfg ['Servers'] [$ i] ['auth_type'] = 'config';を変更する必要があるケースに遭遇しました。// $ cfg ['Servers'] [$ i] ['auth_type'] = 'cookie'に設定として保持します。//設定のままにします。そのヒントをありがとう!
Phil Lawlor

最高のソリューション!
Ghasem Sadeghi

23

できますが、phpMyAdminの設定を変更する必要がありますこの投稿を読んでくださいhttp : //www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin

何らかの理由でリンクが停止した場合は、次の手順を使用できます。

  • phpMyAdminの設定ファイルを探します。 config.inc.php
  • $cfg['Servers'][$i]['host']変数を見つけて、リモートサーバーのIPまたはホスト名に設定します。
  • $cfg['Servers'][$i]['port']変数を見つけて、リモートのmysqlポートに設定します。通常これは3306
  • $cfg['Servers'][$i]['user']および$cfg['Servers'][$i]['password']変数を見つけて、リモートサーバーのユーザー名とパスワードに設定します。

サーバーが適切に構成されていないと、接続がローカル接続よりも遅くなる可能性があります。たとえば、サーバーがホスト名からIPアドレスを検索するのを避けるために、ホスト名の代わりにIPアドレスを使用する方がわずかに速いでしょう。

また、リモートデータベースのユーザー名とパスワードは、このように接続するとプレーンテキストで保存されるため、この構成ファイルに誰もアクセスできないようにする必要があります。または、ユーザー名とパスワードの変数を空のままにして、ログインするたびに入力を求めるプロンプトを表示することもできます。これはより安全です。


3
また、データベースインスタンスのファイアウォールでトラフィックを許可し、DBサーバー上のユーザーにリモートアクセス権限を付与する必要もあります。
ceejayoz 2013年

ここで質問してもいいですか。私は初心者なので、自分のWebサイトをホストしているクライアントのサーバーにインストールされているphpMyAdminを介してデータベースにアクセスするために、ブラウザーにどのようなリンクを入力したいのか知りたいです。
ガラヴァーニ

11

このブログ投稿に従ってください。とても簡単にできます。 https://wadsa​​shika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

config.inc.phpファイルには、phpMyAdminインストールの構成設定が含まれています。配列を使用して、接続できるすべてのサーバーの構成オプションのセットを格納します。デフォルトでは、ユーザーのマシンまたはローカルホストは1つだけです。別のサーバーに接続するには、構成オプションに別の構成オプションセットを追加する必要があります。この構成ファイルを編集する必要があります。

まず、phpMyAdminフォルダーにあるconfig.inc.phpファイルを開きます。でWAMPのサーバー、あなたはそれを見つけることができますWAMP \ APPS \ phpmyadminのフォルダ。次に、次の部分をそのファイルに追加します。

$i++;
$cfg['Servers'][$i]['host']          = 'hostname/Ip Adress';
$cfg['Servers'][$i]['port']          = '';
$cfg['Servers'][$i]['socket']        = '';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysql';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'config';
$cfg['Servers'][$i]['user']          = 'username';
$cfg['Servers'][$i]['password']      = 'password';

この変数の意味を見てみましょう。

$i++ :- Incrementing variable for each server
$cfg[‘Servers’][$i][‘host’] :- Server host name or IP adress
$cfg[‘Servers’][$i][‘port’] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306)
$cfg[‘Servers’][$i][‘socket’] :- Path to the socket (Leave a blank for default socket)
$cfg[‘Servers’][$i][‘connect_type’] :- How to connect to MySQL server (‘tcp or socket’)
$cfg[‘Servers’][$i][‘extension’] :- php MySQL extension to use (‘mysql or msqli’)
$cfg[‘Servers’][$i][‘compress’] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
$cfg[‘Servers’][$i][‘auth_type’] :- Method of Authentication
$cfg[‘Servers’][$i][‘username’] :- Username to the MySQL database in remote server
$cfg[‘Servers’][$i][‘password’] :- Password to the MySQL database int he remote server

この構成部分を追加した後、サーバーを再起動すると、phpMyAdminホームページが変更され、サーバーを選択するためのフィールドが表示されます。

これで、サーバーを選択し、そのデータベースのユーザー名とパスワードを入力してリモートデータベースにアクセスできます。


1
より正確に、あなたの答えについてもっと説明してください。リンクの回答は適切ですが、リンクが何らかの理由で破損した場合は、到達できない可能性があります。
Milad Faridnia、2015年

9

回答c.hillの回答で述べたように、安全なソリューションが必要場合は、サーバーへのSSHトンネルを開くことをお勧めします。

Windowsユーザー向けの方法は次のとおりです。

  1. PuttyウェブサイトからPlinkとPuttyをダウンロードし、選択したフォルダーにファイルを配置します(この例ではC:\Putty

  2. Windowsコンソールを開き、Plinkフォルダーにcdします。 cd C:\Putty

  3. SSHトンネルを開き、ポート3307にリダイレクトします。

    plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk

どこ:

  • 3307はリダイレクト先のローカルポートです
  • localhostは、リモートサーバー上のMySQL DBのアドレスです(デフォルトではlocalhost)。
  • 3306は、リモートサーバーのPhpMyAdminで使用されるポートです(デフォルトでは3306)。

最後に、PhpMyAdminをセットアップできます。

  1. config.inc.phpの最後に次の行を追加して、リモートサーバーをローカルのPhpMyAdmin構成に追加します

追加する行:

$i++;   
$cfg['Servers'][$i]['verbose']          = 'Remote Dev server';
$cfg['Servers'][$i]['host']             = 'localhost';
$cfg['Servers'][$i]['port']             = '3307';
$cfg['Servers'][$i]['connect_type']     = 'tcp';
$cfg['Servers'][$i]['extension']        = 'mysqli';
$cfg['Servers'][$i]['compress']         = FALSE;
$cfg['Servers'][$i]['auth_type']        = 'cookie';
  1. 今すぐに接続できるはずです http://127.0.0.1/phpmyadmin

リモートサーバーに接続する必要があるたびにコンソールを開きたくない場合は、(2つのコマンドラインを.batファイルに保存して)バッチファイルを作成します。


6

phpMyAdminインストールのconfig.inc.phpファイルで設定できます。

$cfg['Servers'][$i]['host'] = '';

5

私はこれをコメントとして追加したでしょうが、私の評判はまだ十分ではありません。

バージョン4.5.4.1deb2ubuntu2の下で、私は他のバージョン4.5.x以降を推測しています。config.inc.phpファイルを変更する必要はまったくありません。代わりに、conf.dの下にもう1つディレクトリを移動します。

拡張子が「.php」の新しいファイルを作成し、行を追加します。これはより良いモジュール化されたアプローチであり、各リモートデータベースサーバーアクセス情報を分離します。


2

一番下のファイル\ phpMyAdmin \ config.inc.phpに移動し、ホスト、ユーザー名、パスワードなどのホスティングの詳細を変更します。


2

Ubuntuでは

PHPMyAdminフォルダー内の1つのファイル、つまり「config.inc.php」を変更するだけです。「config.inc.php」に以下の行を追加するだけです。

ファイルの場所:/var/lib/phpmyadmin/config.inc.phpまたは /etc/phpmyadmin/config.inc.php

そのファイルを編集する権限がない可能性があります。このコマンドを使用して権限を付与してください

sudo chmod 777 /var/lib/phpmyadmin/config.inc.php

または(異なるシステムでは、これら2つの場所を確認する必要がある場合があります)

sudo chmod 777 /etc/phpmyadmin/config.inc.php

次に、コードをコピーしてconfig.inc.phpファイルに貼り付けます

    $i++;
    $cfg['Servers'][$i]['auth_type']     = 'cookie';
    $cfg['Servers'][$i]['verbose'] = 'Database Server 2';
    $cfg['Servers'][$i]['host'] = '34.12.123.31';
    $cfg['Servers'][$i]['connect_type']  = 'tcp';
    $cfg['Servers'][$i]['compress']      = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

サーバーの詳細で適切な変更を行います


1

方法1(マルチサーバー用)

まず、元の構成のバックアップを作成します。

sudo cp /etc/phpmyadmin/config.inc.php      ~/ 

これで/ usr / share / doc / phpmyadmin / examples /にconfig.manyhosts.inc.phpファイルが表示されます。以下の コマンドを使用して、/ etc / phpmyadmin /にコピーするだけです

sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
        /etc/phpmyadmin/config.inc.php

config.inc.phpを編集します

sudo nano /etc/phpmyadmin/config.inc.php 

検索する :

$hosts = array (
    "foo.example.com",
    "bar.example.com",
    "baz.example.com",
    "quux.example.com",
);

そして、IPまたはホスト名の配列を追加して保存し(nano CTRL + XでYを押す)、終了します。できた

方法2(単一サーバー)config.inc.phpを編集します

sudo nano /etc/phpmyadmin/config.inc.php 

検索する :

/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;

if (!empty($dbport) || $dbserver != 'localhost') {
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['port'] = $dbport;
}

そして以下と置き換えます:

$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';

192.168.1.100 を独自のmysql ipサーバーに置き換えることを覚えておいてください。

私の悪い英語でごめんなさい(グーグル翻訳は責任がある:D)


1

テストすると、config.default.phpファイルが見つかります

次に$ cfg ['AllowArbitraryServer'] = falseを見つけ ます。

それをtrueに設定します

注:ubuntuでは、パス/usr/share/phpmyadmin/libraries/config.default.phpにあるファイル

次に、PHPMyAdminのメインページに新しいファイル名SERVERが表示されます。これに、ローカルデータベースのIPまたはlocalhostを追加できます。


0

Wamp ServerがインストールされているWindowsでは、構成ファイルが見つかる場合があります

C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php

必要に応じて、ブローラインを変更します。

$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;//$wampConf['mysqlPortUsed'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

-1

の完全なエントリを削除 /etc/http/conf.d/phpMyAdmin.conf

上記のファイルの全体の下に、

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       #ADD following line:
       Require all granted
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     #CHANGE following 2 lines:
     Order Allow,Deny
     Allow from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

そして、

MySQLプロンプトで以下のコマンドを実行します。

GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'

参考:保護されたPhpMyAdminへのアクセスをIPに許可する

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.