2013-05-28 35 views

回答

21

這是可以做到的,但您需要更改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

您還需要對數據庫實例的防火牆允許流量,並與遠程訪問權限的數據庫服務器上的用戶。 – ceejayoz

+0

爲了您的信息,端口3306是默認的MySQL端口 –

6

您可以在phpMyAdmin安裝的config.inc.php文件中設置。

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

低於線只需添加到您「的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://goo.gl/FZ6nqD

+3

謝謝我的朋友 – Ernest

+2

@Ernest:歡迎。 –

+7

'$ i ++'是一個重要的觀點,因爲這不會讓我們失去與默認'localhost'的數據庫連接。 –

15

這當然是可以從phpMyAdmin的本地實例訪問遠程MySQL服務器,其他的答案人士指出。爲了達到這個目的,你必須登錄configure the remote server's MySQL server to accept remote connections,並允許通過防火牆的流量來獲取MySQL正在監聽的端口號。我更喜歡涉及SSH Tunnelling的稍微不同的解決方案。

以下命令將成立一個SSH隧道,將在本機端口3307的所有請求轉發到3306端口的遠程計算機上:

ssh -NL 3307:localhost:3306 [email protected]_HOST 

出現提示時,你應該輸入密碼遠程機器上的root用戶。這將打開隧道。如果您想在後臺運行此操作,則需要添加-f參數,並在本地計算機和遠程計算機之間設置Passwordless 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++; 

我寫了一個更深入的blog post究竟這一點,如果你需要額外的幫助。

+1

我認爲這是安全的解決方案。如果不是絕對必要的話,打開mySQL來指導遠程訪問通常被認爲是一種很差的安全措施。 – Omn

+1

c.hill的回答不太對。請注意:必須將綁定地址設置爲mysql my.cnf文件中的回送地址。 – 2014-11-25 18:16:49

+0

無需成爲遠程主機上的root用戶。橋樑完美運作,謝謝!雖然我不太確定配置,但更喜歡Suresh Kamrushi的回答。 '$ ++'應該是第一行,而不是最後一行,至少對於我的默認phpmyadmin.conf。 – frnhr

10

關注此博客文章。你可以很容易地做到這一點。 https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

文件的config.inc.php包含您的phpMyAdmin的安裝配置設置。它使用數組爲每個可連接的服務器存儲一組配置選項,默認情況下只有一個,您自己的機器或本地主機。爲了連接到另一臺服務器,您必須將另一組配置選項添加到配置陣列。你必須編輯這個配置文件。

首先打開config.inc.php文件在phpMyAdmin文件夾中。在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

可能會更準確,並解釋更多關於您的答案。鏈接的答案是好的,但可能無法訪問,如果由於任何原因鏈接損壞。 –

6

正如回答c.hill答案中所述,如果你想要一個安全解決方案我建議打開SSH隧道到您的服務器。

這裏是這樣做對的Windows用戶的方式:從Putty website

  1. 下載的Plink和膩子,把你所選擇的文件夾中的文件(在我的例子C:\Putty

  2. 打開Windows控制檯並cd到Plink文件夾: cd C:\Putty

  3. 打開SSH隧道重定向到3307端口:

    plink -L 3307:localhost:3306 [email protected]_ip -i path_to_your_private_key.ppk

其中:

  • 3307是要重定向到
  • 本地主機的本地端口是MySQL數據庫的上的地址遠程服務器(默認爲本地主機)
  • 3306是遠程服務器上的PhpMyAdmin的端口使用(默認爲3306)

最後可以設置phpMyAdmin的:

  • 遠程服務器添加到本地配置的phpMyAdmin通過將下面的行在的config.inc.php的端
  • 行補充:

    $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'; 
    
  • 您應該能夠現在http://127.0.0.1/phpmyadmin
  • 連接如果你不想每次需要連接到遠程服務器,只需建立一個批處理文件(通過保存2個命令行的.bat文件)時打開控制檯。

    1

    在Ubuntu中

    只要你需要修改在phpMyAdmin文件夾中,即「的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 
    

    OR(在不同的系統,你可能有給你許可檢查這兩個位置)

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

    然後將代碼複製並粘貼到您的[R 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

    轉到文件\ phpMyAdmin的\ config.inc.php文件在最底層,更改託管的詳細信息,如主機,用戶名,密碼,進行相應的更改等等。

    4

    我會添加這個作爲評論,但我的聲望還不夠高。

    在版本4.5.4.1deb2ubuntu2,我猜測任何其他版本4.5.x或更新。根本不需要修改config.inc.php文件。相反,再去一個目錄下conf.d.

    用'.php'擴展名創建一個新文件並添加行。這是一種更好的模塊化方法,並隔離每個遠程數據庫服務器訪問信息。的/etc/http/conf.d/phpMyAdmin.conf

    而且低於上述文件entires

    +1

    儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18797738) – msparer

    相關問題