2017-02-02 10 views
0

複数のmysqlサーバにアクセスするようにphpMyAdminを設定し、 "http auth"ログイン(mysqlデータベースログイン)を使用します。しかし、それは動作していないと私はそれが可能かどうかはわからない?もちろん、私はまず何十もの文書、フォーラム、ウェブページを読んだことがあります。複数のデータベースとhttp authでphpMyAdminを設定しますか?

これは(最初のサーバーのみで動作します)私の設定です:

/* Server: svrdb01 [1] */ 
$i++; 
$cfg['Servers'][$i]['verbose'] = 'svrdb01'; 
$cfg['Servers'][$i]['host'] = '10.128.1.1'; 
$cfg['Servers'][$i]['port'] = ''; 
$cfg['Servers'][$i]['socket'] = ''; 
$cfg['Servers'][$i]['connect_type'] = 'tcp'; 
$cfg['Servers'][$i]['extension'] = 'mysqli'; 
$cfg['Servers'][$i]['auth_type'] = 'http'; 
$cfg['Servers'][$i]['user'] = ''; 
$cfg['Servers'][$i]['password'] = ''; 
$cfg['Servers'][$i]['auth_http_realm'] = 'Login MySQL 1'; 
/* Server: svrdb02 [2] */ 
$i++; 
$cfg['Servers'][$i]['verbose'] = 'svrdb02'; 
$cfg['Servers'][$i]['host'] = '10.128.1.2'; 
$cfg['Servers'][$i]['port'] = ''; 
$cfg['Servers'][$i]['socket'] = ''; 
$cfg['Servers'][$i]['connect_type'] = 'tcp'; 
$cfg['Servers'][$i]['extension'] = 'mysqli'; 
$cfg['Servers'][$i]['auth_type'] = 'http'; 
$cfg['Servers'][$i]['user'] = ''; 
$cfg['Servers'][$i]['password'] = ''; 
$cfg['Servers'][$i]['auth_http_realm'] = 'Login MySQL 2'; 
/* Server: svrdb04 [3] */ 
$i++; 
$cfg['Servers'][$i]['verbose'] = 'svrdb04'; 
$cfg['Servers'][$i]['host'] = '10.128.1.4'; 
$cfg['Servers'][$i]['port'] = ''; 
$cfg['Servers'][$i]['socket'] = ''; 
$cfg['Servers'][$i]['connect_type'] = 'tcp'; 
$cfg['Servers'][$i]['extension'] = 'mysqli'; 
$cfg['Servers'][$i]['auth_type'] = 'http'; 
$cfg['Servers'][$i]['user'] = ''; 
$cfg['Servers'][$i]['password'] = ''; 
$cfg['Servers'][$i]['auth_http_realm'] = 'Login MySQL 3'; 

すべてのヘルプは、特にこれらの3つの質問に、有用であろう:

  1. はそれでphpMyAdminのを設定することが可能です論理?
  2. 「はい」の場合、phpMyAdminは成功するまでそれぞれのサーバでログインを試みますか?
  3. もしそうでなければ、phpMyAdminに複数のサーバでMySQLログインを使用させる別の方法がありますか?あなたの助けのための

おかげでたくさん...

P. S.私はすでにserverfaultの上にその質問を誰も疑問に答えることができなかったと私はどんな説明もなく1つのdownvoteを得ました。私はstackoverflow上の誰かが質問に答える(または私の質問に間違っていることを教えてくれます)ことを願っています。

答えて

0

この設定ファイルは「最初のサーバだけで動作します」と言っていますが、それはどういう意味ですか?他のサーバーに変更しようとするとエラーが発生しますか?ログインする前にプロンプ​​トを表示して、どのサーバーに接続したいか尋ねていますか?これは私にとってはうまくいくと思うので好奇心が強いですが、インターフェイスはauth_type cookieで使われているものとは異なり、混乱するかもしれません。

auth_type cookieの場合、最初のページのログインフォームには、username、password、およびホストを選択するためのドロップダウンリストがあります。 auth_type httpを使用すると、ユーザー名とパスワードのHTTPブラウザのログインページが表示され、ここに最初のサーバーのユーザー名またはパスワードを入力する必要があります。その後、最初のサーバーに接続すると、ナビゲーションペインのサーバードロップダウンを使用して別のサーバーを選択できます(このドロップダウンは、他のauth_typeとともに表示されます)。私は最初に別のサーバに接続する前に最初のサーバに接続しなければならないので、これはあまり便利ではないので、auth_type cookieを使用します(何かがうまくいかないときにログアウトしてエラー報告をしやすくなります)。

customized URL(またはブックマークをブックマークする)と入力してサーバーを強制できます。 https://localhost/phpmyadmin/index.php?server=5のようなものですが、実際に何かを行う前に両方のサーバー(1と5)に認証する必要があるようです。

直接あなたの質問に答えるために:

それはそのロジックでのphpMyAdminを設定することは可能ですか?

確かに正常です。

「はい」の場合、phpMyAdminは成功するまでそれぞれのサーバーでログインを試みますか?

いいえ、最初のサーバーにログインしてから、接続先の他のサーバーに移動する必要があります。

phpMyAdminに複数のサーバーでMySQLログインを使用させる別の方法はありますか?

auth_type cookieは最高ですが、auth_type httpを使用しても、制限事項を認識していて、それを回避しようとしている限り機能します。

要約すると、auth_type cookieに切り替えることをお勧めします。なぜなら、私はそれを扱うのが最も簡単だからです。 @Isaac Bennetchの回答に基づいて

+0

親愛なる@Isaacは、完全で詳細な回答をいただきありがとうございます!私はあなたに感謝して問題を解決したと思う。しかし、まず、私があなたの質問や私が発見したものに対する答えにコメントします。 –

+0

最初の質問に答えるには、「最初のサーバでのみ動作する」とは、最初のサーバで有効なログイン/パスワードを入力すると、phpmyadminにログインして使用できることを意味します。しかし、2番目のサーバーで有効なログイン/パスワードを入力すると、私は全くログインすることができません。あなたが言ったように、最初のサーバーと変更サーバーにログオンし、再度ログインすると機能します。しかし、これはもちろん、3番目のサーバにログインするユーザが最初のサーバにアクセスする必要がないため、望ましくない動作です。 –

+0

次に、auth_cookieで動作することはわかっていますが、ロギングする前にサーバを選択することもできます。しかしまず第一に私はセキュリティ上の理由からクッキーを避けたいと思っていますが、私はすべてのデータベースサーバーのリストを顧客が入手しないようにしています。いくつかは顧客固有のものであり、一般に公開すべきではありません。 –

0

ソリューションは、以下のURLを使用することです:index.phpのは、URLに含まれてはいけません

注意それ以外の場合はしません作業。分析の後

これが実行されているコードです:

  1. ライブラリ/プラグイン/ AUTH/AuthenticationHttp.class.php - パブリック関数authSetUser() - ログインとパスワードが
  2. ライブラリ/ DBIを定義しています/mysqli.dbi.lib.php - 機能PMA_DBI_connect()
  3. 同じファイル - 関数PMA_DBI_real_connect() - データベース

あなたがこれらの場所でのデバッグを追加した場合、目への実際の接続どのサーバーが使用されているかを確認し、「?server = 5」が正しいサーバーを選択していることを確認できます。

関連する問題