Odpowiedzi:
Po prostu dodaj poniższe wiersze do /etc/phpmyadmin/config.inc.php
pliku na dole:
$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
. Pojawi się lista rozwijana „Bieżący serwer:” z zarówno „127.0.0.1”, jak i jednym z przełączników krzywkowych „$ cfg ['Servers'] [$ i] ['host']” między serwerami.
więcej szczegółów: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/
$i++
To ważny punkt, ponieważ nie pozwoli nam stracić połączenie z bazą danych z domyślnego localhost
.
/etc/phpmyadmin/config.inc.php
to poprawny plik do zmiany
config.inc.php
plik znajduje się w Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
pliku.
Z pewnością jest możliwy dostęp do zdalnego serwera MySQL z lokalnej instancji phpMyAdmin, jak wskazywały inne odpowiedzi. Aby to zadziałało, musisz skonfigurować serwer MySQL zdalnego serwera, aby akceptował połączenia zdalne i zezwalał na ruch przez zaporę ogniową dla numeru portu, którego MySQL nasłuchuje. Wolę nieco inne rozwiązanie obejmujące tunelowanie SSH .
Następujące polecenie skonfiguruje tunel SSH, który przekieruje wszystkie żądania wysłane do portu 3307 z komputera lokalnego do portu 3306 na komputerze zdalnym:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
Po wyświetleniu monitu należy wprowadzić hasło użytkownika root na komputerze zdalnym. To otworzy tunel. Jeśli chcesz uruchomić to w tle, musisz dodać -f
argument i skonfigurować SSH bez hasła między komputerem lokalnym a komputerem zdalnym.
Po uruchomieniu tunelu SSH możesz dodać zdalny serwer do listy serwerów w lokalnym phpMyAdminie, modyfikując /etc/phpmyadmin/config.inc.php
plik. Dodaj na końcu pliku:
$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++;
Napisałem bardziej szczegółowy wpis na blogu dokładnie o tym, na wypadek gdybyś potrzebował dodatkowej pomocy.
$++
zdecydowanie powinien być pierwszą linią, a nie ostatnią, przynajmniej dla mojego domyślnego phpmyadmin.conf.
Można to zrobić, ale musisz zmienić konfigurację phpMyAdmina, przeczytaj ten post: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin
Jeśli z jakiegoś powodu link zniknie, możesz wykonać następujące czynności:
config.inc.php
$cfg['Servers'][$i]['host']
zmienną i ustaw ją na adres IP lub nazwę hosta zdalnego serwera$cfg['Servers'][$i]['port']
zmienną i ustaw ją na zdalny port mysql. Zwykle tak jest3306
$cfg['Servers'][$i]['user']
i $cfg['Servers'][$i]['password']
zmienne i ustawić je do swojej nazwy użytkownika i hasła do zdalnego serweraBez odpowiedniej konfiguracji serwera połączenie może być wolniejsze niż na przykład połączenie lokalne, prawdopodobnie byłoby nieco szybsze użycie adresów IP zamiast nazw hostów, aby uniknąć konieczności wyszukiwania adresu IP na podstawie nazwy hosta.
Ponadto pamiętaj, że nazwa użytkownika i hasło do zdalnej bazy danych są przechowywane w postaci zwykłego tekstu, gdy łączysz się w ten sposób, więc powinieneś podjąć kroki, aby nikt nie miał dostępu do tego pliku konfiguracyjnego. Alternatywnie możesz pozostawić zmienne nazwy użytkownika i hasła puste, aby przy każdym logowaniu pojawiał się monit o ich wprowadzenie, co jest o wiele bezpieczniejsze.
Śledź ten wpis na blogu. Możesz to zrobić bardzo łatwo. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
Plik config.inc.php zawiera ustawienia konfiguracyjne instalacji phpMyAdmina. Używa tablicy do przechowywania zestawów opcji konfiguracyjnych dla każdego serwera, z którym może się połączyć, a domyślnie jest tylko jeden, twoja maszyna lub localhost. Aby połączyć się z innym serwerem, musiałbyś dodać kolejny zestaw opcji konfiguracyjnych do tablicy konfiguracyjnej. Musisz edytować ten plik konfiguracyjny.
Najpierw otwórz plik config.inc.php przechowywany w folderze phpMyAdmin . Na serwerze wampa możesz go znaleźć w folderze wamp \ apps \ phpmyadmin . Następnie dodaj następującą część do tego pliku.
$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';
Zobaczmy, jakie jest znaczenie tych zmiennych.
$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
Po dodaniu tej części konfiguracyjnej zrestartuj serwer, a teraz strona główna phpMyAdmina zmieni się i pokaże pole do wyboru serwera.
Teraz możesz wybrać serwer i uzyskać dostęp do zdalnej bazy danych, wprowadzając nazwę użytkownika i hasło do tej bazy danych.
Jak stwierdzono w odpowiedzi c.hill answer, jeśli chcesz mieć bezpieczne rozwiązanie , radziłbym otworzyć tunel SSH do twojego serwera.
Oto sposób na zrobienie tego dla użytkowników systemu Windows :
Pobierz Plink and Putty ze strony internetowej Putty i umieść pliki w wybranym folderze (w moim przykładzie C:\Putty
)
Otwórz konsolę Windows i przejdź do folderu Plink:
cd C:\Putty
Otwórz tunel SSH i przekieruj do portu 3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
Gdzie:
Wreszcie możesz skonfigurować PhpMyAdmin:
Linie do dodania:
$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
Jeśli nie chcesz otwierać konsoli za każdym razem, gdy chcesz łączyć się ze zdalnym serwerem, po prostu utwórz plik wsadowy (zapisując 2 wiersze poleceń w pliku .bat).
Dodałbym to jako komentarz, ale moja reputacja nie jest jeszcze wystarczająco wysoka.
W wersji 4.5.4.1deb2ubuntu2 i zgaduję inne wersje 4.5.x lub nowsze. W ogóle nie ma potrzeby modyfikowania pliku config.inc.php. Zamiast tego przejdź do jeszcze jednego katalogu w dół conf.d.
Utwórz nowy plik z rozszerzeniem „.php” i dodaj linie. Jest to lepsze podejście modułowe i izoluje informacje o dostępie do każdego zdalnego serwera bazy danych.
Przejdź do pliku \ phpMyAdmin \ config.inc.php na samym dole, zmień szczegóły hostingu, takie jak host, nazwa użytkownika, hasło itp.
W Ubuntu
Wystarczy zmodyfikować pojedynczy plik w folderze PHPMyAdmin, np. „Config.inc.php”. Po prostu dodaj poniższe wiersze do swojego „config.inc.php”.
Lokalizacja pliku: /var/lib/phpmyadmin/config.inc.php
LUB
/etc/phpmyadmin/config.inc.php
Może nie masz uprawnień do edycji tego pliku, po prostu nadaj uprawnienia za pomocą tego polecenia
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
LUB (w różnych systemach może być konieczne sprawdzenie tych dwóch lokalizacji)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
Następnie skopiuj i wklej kod do swojego config.inc.php
pliku
$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;
Wprowadź odpowiednie zmiany w danych serwera
Metoda 1 (dla wielu serwerów)
Najpierw zróbmy kopię zapasową oryginalnej konfiguracji.
sudo cp /etc/phpmyadmin/config.inc.php ~/
Teraz w / usr / share / doc / phpmyadmin / examples / zobaczysz plik config.manyhosts.inc.php . Po prostu skopiuj do / etc / phpmyadmin / używając polecenia poniżej:
sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php
Edytuj plik config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Szukaj :
$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);
I dodaj zapisywanie tablicy IP lub nazwy hosta (w nano CTRL + X naciśnij Y) i wyjdź. Gotowe
Metoda 2 (pojedynczy serwer) Edytuj plik config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Szukaj :
/* 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;
}
I zamień na:
$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';
Pamiętaj, aby zastąpić adres 192.168.1.100 własnym serwerem ip mysql.
Przepraszam za mój zły angielski (winę ponosi tłumacz Google: D)
Podczas testu znajduję plik config.default.php
następnie znajdź $ cfg ['AllowArbitraryServer'] = false;
następnie ustaw wartość true
uwaga: na Ubuntu plik w ścieżce /usr/share/phpmyadmin/libraries/config.default.php
wtedy na głównej stronie PHPMyAdmin znajdziesz nową nazwę pliku SERVER, możesz dodać do niej dowolny adres IP lub localhost dla lokalnej bazy danych.
W systemie Windows z zainstalowanym serwerem Wamp możesz znaleźć plik konfiguracyjny
C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php
Zmień odpowiednio linię śruby
$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'] = '';
Usuń całe wpisy z /etc/http/conf.d/phpMyAdmin.conf
A poniżej wpisuje się w powyższym pliku,
<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>
Następnie,
uruchom poniższe polecenie w wierszu polecenia MySQL,
GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'
Dla odniesienia: Zezwól IP na dostęp do zabezpieczonego PhpMyAdmin
phpmyadmin
obraz dockera lokalnie i połączyć się ze zdalnym serwerem MySQL. więcej szczegółów tutaj :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin