Yerel phpMyAdmin istemcisi ile uzak sunucuya nasıl erişilir?


134

Uzak bir sunucu var ve bilgisayarımda yerel olarak yüklü phpMyAdmin istemcisi varsayarsak. Bu sunucuya nasıl erişebilir ve phpMyAdmin istemcisi aracılığıyla yönetebilirim? Mümkün mü?


1
phpmyadmindocker görüntüsünü yerel olarak kurabilir ve uzak MySQL sunucunuza bağlanabilirsiniz. burada daha fazla ayrıntı :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin
Xiao

Yanıtlar:


175

/etc/phpmyadmin/config.inc.phpDosyanıza aşağıdaki satırları ekleyin :

$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

. Sunucular arasında “127.0.0.1” ve “$ cfg ['Servers'] [$ i] ['host']” kam anahtarıyla sağladığınız “Current Server:” açılır menüsünü alacaksınız.

daha fazla detay: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/


16
Bu $i++önemli bir nokta, çünkü bu varsayılan ile veritabanı bağlantısını kaybetmemize neden olmaz localhost.
Gaurav Ramanan

Ayrıca çalışması için phpMyAdmin içinde ayarladıktan sonra bu yazıdaki adımları takip etmek zorunda kaldı .
Ahmed Akhtar

2
/etc/phpmyadmin/config.inc.phpdeğiştirilecek dosya nedir
Xiao

Yukarıdaki yöntem kesinlikle doğrudur, ancak neden hepiniz bana uzaktan mySql'de ip adresimi eklemem veya eklemem gerektiğini söylemediniz. aksi takdirde çalışmaz. Lütfen arkadaşlar da bunu not edin
Jaydeep Goswami

Herkes Apple sisteminde çalışıyorsa, config.inc.phpdosya Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.phpdosyada bulunur.
Anirudha Mahale

23

Diğer cevapların işaret ettiği gibi, uzak bir MySQL sunucusuna yerel bir phpMyAdmin örneğinden erişmek kesinlikle mümkündür. Bunun çalışması için, uzak sunucunun MySQL sunucusunu uzak bağlantıları kabul edecek şekilde yapılandırmalı ve MySQL'in dinlediği bağlantı noktası numarası için güvenlik duvarı üzerinden trafiğe izin vermelisiniz. SSH Tünel Oluşturmayı içeren biraz farklı bir çözümü tercih ediyorum .

Aşağıdaki komut, yerel makinenizden 3307 numaralı bağlantı noktasına yapılan tüm istekleri uzak makinedeki 3306 numaralı bağlantı noktasına iletecek bir SSH tüneli oluşturacaktır:

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

İstendiğinde, uzak makinedeki kök kullanıcının parolasını girmelisiniz. Bu tüneli açacak. Bunu arka planda çalıştırmak istiyorsanız, -fargümanı eklemeniz ve Parolasız SSH'yi ayarlamanız gerekir. yerel makineniz ile uzak makine arasında gerekir.

SSH tüneli çalıştıktan sonra, uzak sunucuyu /etc/phpmyadmin/config.inc.phpdosyayı değiştirerek yerel phpMyAdmin'inizdeki sunucular listesine ekleyebilirsiniz . Dosyanın sonuna aşağıdakileri ekleyin:

$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++;

Ek yardıma ihtiyacınız olması durumunda, tam olarak bunun hakkında daha ayrıntılı bir blog yazısı yazdım .


1
Bence bu güvenli bir çözüm. MySQL'in doğrudan uzaktan erişime açılması, kesinlikle gerekli değilse genellikle zayıf bir güvenlik uygulaması olarak kabul edilir.
Omn

1
c.hill'in cevabı tam olarak doğru değil. Lütfen dikkat: Bağlama adresi mysql my.cnf dosyasındaki geri döngü adresine ayarlanmalıdır.

Uzak ana bilgisayarda root olmanıza gerek yok. köprü mükemmel çalışıyor, teşekkürler! Yine de, yapılandırma konusunda o kadar emin değilim, Suresh Kamrushi'nin cevabını tercih edin. $++en azından benim varsayılan phpmyadmin.conf için kesinlikle ilk satır olmalı, son değil.
frnhr

Sadece $ cfg ['Servers'] [$ i] ['auth_type'] = 'config' değiştirmem gereken bir durumla karşılaştım; // $ cfg ['Servers'] [$ i] ['auth_type'] = 'çerez' için yapılandırma olarak sakla; // yapılandırma olarak sakla. Bu ipucu için teşekkürler!
Phil Lawlor

En iyi çözüm!
Ghasem Sadeghi

23

Bu yapılabilir, ancak phpMyAdmin yapılandırmasını değiştirmeniz gerekir, bu yazıyı okuyun: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin

Herhangi bir nedenle bağlantı koparsa, aşağıdaki adımları kullanabilirsiniz:

  • Adlı phpMyAdmin'in yapılandırma dosyasını bulun config.inc.php
  • $cfg['Servers'][$i]['host']Değişkeni bulun ve uzak sunucunuzun IP veya ana bilgisayar adına ayarlayın
  • $cfg['Servers'][$i]['port']Değişkeni bulun ve uzaktaki mysql bağlantı noktasına ayarlayın. Genellikle bu3306
  • $cfg['Servers'][$i]['user']Ve $cfg['Servers'][$i]['password']değişkenlerini bulun ve bunları uzak sunucu için kullanıcı adınıza ve şifrenize ayarlayın

Doğru sunucu yapılandırması olmadan, bağlantı yerel bir bağlantıdan daha yavaş olabilir, sunucunun IP adresini ana bilgisayar adından aramak zorunda kalmaması için ana bilgisayar adları yerine IP adreslerinin kullanılması muhtemelen biraz daha hızlı olacaktır.

Ayrıca, bu şekilde bağlandığınızda uzak veritabanınızın kullanıcı adı ve şifresinin düz metin olarak saklandığını unutmayın, bu nedenle kimsenin bu yapılandırma dosyasına erişemediğinden emin olmak için adımlar atmalısınız. Alternatif olarak, her giriş yaptığınızda kullanıcı adı ve şifre değişkenlerini boş bırakmanız istenebilir; bu da çok daha güvenlidir.


3
Veritabanı örneğindeki güvenlik duvarının trafiğe izin vermesi ve DB sunucusundaki bir kullanıcının uzaktan erişim ayrıcalıklarına sahip olması gerekir.
ceejayoz

Burada bir soru sorabilir miyim? Acemi olarak ben bir web sitesi barındıran müvekkilim bir sunucuda yüklü phpMyAdmin üzerinden bir veritabanına erişmek için bağlantı hangi formda girmek istiyorum merak ediyorum.
Garavani

11

Bu blog gönderisini takip edin. Çok kolay bir şekilde yapabilirsiniz. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

Config.inc.php dosyası phpMyAdmin kurulumunuz için yapılandırma ayarlarını içerir. Bağlanabileceği her sunucu için yapılandırma seçenekleri kümesini saklamak için bir dizi kullanır ve varsayılan olarak yalnızca bir tane, kendi makineniz veya localhost vardır. Başka bir sunucuya bağlanmak için, yapılandırma dizisine başka bir yapılandırma seçeneği seti eklemeniz gerekir. Bu yapılandırma dosyasını düzenlemeniz gerekir.

İlk önce phpMyAdmin klasöründe bulunan config.inc.php dosyasını açın . In wamp sunucuda, bunu bulabileceğiniz wamp \ apps \ phpmyadmin klasörü. Ardından aşağıdaki dosyayı bu dosyaya ekleyin.

$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';

Bu değişkenlerin ne anlama geldiğini görelim.

$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

Bu yapılandırma bölümünü ekledikten sonra sunucunuzu yeniden başlatın ve şimdi phpMyAdmin giriş sayfanız değişecek ve sunucuyu seçmek için bir alan gösterecektir.

Artık sunucunuzu seçebilir ve o veritabanı için kullanıcı adı ve şifre girerek uzak veritabanınıza erişebilirsiniz.


1
lütfen daha doğru olabilir ve cevabınız hakkında daha fazla açıklayabilir. bağlantı yanıtları iyidir, ancak bağlantı herhangi bir nedenle bozulursa ulaşılamayabilir.
Milad Faridnia

9

Yanıt c.hill cevabında belirtildiği gibi, güvenli bir çözüm istiyorsanız, sunucunuza bir SSH tüneli açmanızı tavsiye ederim.

Windows kullanıcıları için bunu yapmanın yolu :

  1. Putty web sitesinden Plink ve Putty'yi indirin ve dosyaları istediğiniz klasöre yerleştirin (Örneğimde C:\Putty)

  2. Windows konsolunu ve cd to Plink klasörünü açın: cd C:\Putty

  3. SSH tünelini açın ve 3307 numaralı bağlantı noktasına yönlendirin:

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

Nerede:

  • 3307, yönlendirmek istediğiniz yerel bağlantı noktasıdır
  • localhost, uzak sunucudaki MySQL DB'nin adresidir (varsayılan olarak localhost)
  • 3306, uzak sunucudaki PhpMyAdmin için bağlantı noktası kullanımıdır (varsayılan olarak 3306)

Son olarak PhpMyAdmin'i ayarlayabilirsiniz:

  1. Config.inc.php dosyasının sonuna aşağıdaki satırı ekleyerek uzak sunucuyu yerel PhpMyAdmin yapılandırmanıza ekleyin.

Eklenecek satırlar:

$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. Şuradan bağlanabilmeniz gerekir: http://127.0.0.1/phpmyadmin

Uzak sunucunuza her bağlanmanız gerektiğinde konsolu açmak istemiyorsanız, bir toplu iş dosyası oluşturun (2 komut satırını bir .bat dosyasına kaydederek).


6

PhpMyAdmin kurulumunuzun config.inc.php dosyasında ayarlayabilirsiniz.

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

5

Bunu bir yorum olarak eklerdim, ancak itibarım henüz yeterince yüksek değil.

4.5.4.1deb2ubuntu2 sürümü altında ve ben 4.5.x veya daha yeni sürümleri tahmin ediyorum. Config.inc.php dosyasını değiştirmeye gerek yoktur. Bunun yerine bir dizin daha gidin. Conf.d.

'.Php' uzantılı yeni bir dosya oluşturun ve satırları ekleyin. Bu daha iyi modüler bir yaklaşımdır ve her uzak veritabanı sunucusu erişim bilgisini izole eder.


2

En alttaki \ phpMyAdmin \ config.inc.php dosyasına gidin, ana bilgisayar, kullanıcı adı, şifre vb. Gibi barındırma bilgilerini değiştirin.


2

Ubuntu bölgesinde

PHPMyAdmin klasöründeki tek bir dosyayı değiştirmeniz yeterlidir, yani “config.inc.php”. “Config.inc.php” dosyasına sadece aşağıdaki satırları ekleyin.

Dosya konumu : /var/lib/phpmyadmin/config.inc.php VEYA /etc/phpmyadmin/config.inc.php

Belki bu dosyayı düzenleme izniniz yok, sadece bu komutu kullanarak izin verin

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

VEYA (farklı sistemlerde bu iki konumu kontrol etmeniz gerekebilir)

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

Ardından kodu kopyalayıp config.inc.phpdosyanıza yapıştırın

    $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;

Ve sunucu bilgilerinizle uygun değişiklikleri yapın


1

Yöntem 1 (çoklu dönüştürücü için)

İlk olarak, orijinal yapılandırmanın bir yedeğini alalım.

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

Şimdi / usr / share / doc / phpmyadmin / samples / içinde config.manyhosts.inc.php dosyasını göreceksiniz . Aşağıdaki komutu kullanarak / etc / phpmyadmin / dizinine kopyalayın :

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

Config.inc.php dosyasını düzenleyin

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

Aramak :

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

Ve ip veya ana bilgisayar adı dizinizi kaydedin (nano CTRL + X'de Y'ye basın) ekleyin ve çıkın. Bitti

Yöntem 2 (tek sunucu) config.inc.php dosyasını düzenleyin

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

Aramak :

/* 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;
}

Şununla değiştir:

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

192.168.1.100'ü kendi mysql ip sunucunuzla değiştirmeyi unutmayın.

Kötü İngilizcem için özür dilerim (google translate suçu var: D)


1

Test ettiğimde config.default.php dosyasını bulur

o zaman bul $ cfg ['AllowArbitraryServer'] = yanlış;

sonra doğru olarak ayarlayın

not: ubuntu üzerinde /usr/share/phpmyadmin/libraries/config.default.php yolundaki dosya

o zaman ana PHPMyAdmin sayfasında yeni bir dosya adı SERVER bulacaksınız, buna yerel veritabanı için herhangi bir IP veya localhost ekleyebilirsiniz.


0

Wamp Sunucusu Yüklü Windows'ta yapılandırma dosyasını bulabilirsiniz

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

Boşluk hattını uygun şekilde değiştirin

$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

Sitesinin tüm girişlerini sil /etc/http/conf.d/phpMyAdmin.conf

Ve aşağıda yukarıdaki dosyaya girer,

<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>

Sonra,

MySQL komut isteminde aşağıdaki komutu çalıştırın,

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

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

Referans için: IP'nin Güvenli PhpMyAdmin'e Erişmesine İzin Ver

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.