Risposte:
Aggiungi solo le righe di seguito al tuo /etc/phpmyadmin/config.inc.php
file in fondo:
$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
. Verrà visualizzato il menu a discesa "Current Server:" con entrambi "127.0.0.1" e uno che hai fornito con "$ cfg ['Server'] [$ i] ['host']" tra i server.
maggiori dettagli: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/
$i++
è un punto importante in quanto ciò non ci farà perdere la connessione al database con l'impostazione predefinita localhost
.
/etc/phpmyadmin/config.inc.php
è il file corretto da modificare
config.inc.php
file si trova nel Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
file.
È certamente possibile accedere a un server MySQL remoto da un'istanza locale di phpMyAdmin, come hanno sottolineato le altre risposte. E affinché funzioni, devi configurare il server MySQL del server remoto per accettare connessioni remote e consentire il traffico attraverso il firewall per il numero di porta che MySQL sta ascoltando. Preferisco una soluzione leggermente diversa che coinvolga il tunneling SSH .
Il comando seguente imposterà un tunnel SSH che inoltrerà tutte le richieste fatte alla porta 3307 dal tuo computer locale alla porta 3306 sul computer remoto:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
Quando richiesto, è necessario immettere la password per l'utente root sul computer remoto. Questo aprirà il tunnel. Se si desidera eseguire questo in background, è necessario aggiungere l' -f
argomento e impostare SSH senza password tra il computer locale e il computer remoto.
Dopo aver funzionato il tunnel SSH, puoi aggiungere il server remoto all'elenco dei server nel tuo phpMyAdmin locale modificando il /etc/phpmyadmin/config.inc.php
file. Aggiungi quanto segue alla fine del file:
$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++;
Ho scritto un post sul blog più approfondito proprio su questo, nel caso abbiate bisogno di ulteriore aiuto.
$++
dovrebbe essere sicuramente la prima riga, non ultima, almeno per il mio phpmyadmin.conf predefinito.
Può essere fatto, ma è necessario modificare la configurazione di phpMyAdmin, leggi questo post: http://www.danielmois.com/article/Manage_remote_database_from_localhost_with_phpMyAdmin
Se per qualsiasi motivo il collegamento si interrompe, è possibile utilizzare i seguenti passaggi:
config.inc.php
$cfg['Servers'][$i]['host']
variabile e impostala sull'IP o sul nome host del tuo server remoto$cfg['Servers'][$i]['port']
variabile e impostala sulla porta mysql remota. Di solito questo è3306
$cfg['Servers'][$i]['user']
e $cfg['Servers'][$i]['password']
variabili e impostare questi per il nome utente e la password per il server remotoSenza una corretta configurazione del server, la connessione potrebbe essere più lenta di una connessione locale, ad esempio, sarebbe probabilmente leggermente più veloce usare gli indirizzi IP anziché i nomi host per evitare che il server debba cercare l'indirizzo IP dal nome host.
Inoltre, ricorda che il nome utente e la password del tuo database remoto sono memorizzati in testo normale quando ti connetti in questo modo, quindi dovresti prendere delle misure per assicurarti che nessuno possa accedere a questo file di configurazione. In alternativa, puoi lasciare vuote le variabili nome utente e password per ricevere la richiesta di inserirle ogni volta che accedi, il che è molto più sicuro.
Segui questo post sul blog. Puoi farlo molto facilmente. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
Il file config.inc.php contiene le impostazioni di configurazione per l'installazione di phpMyAdmin. Utilizza un array per archiviare set di opzioni di configurazione per ogni server a cui è in grado di connettersi e per impostazione predefinita è disponibile solo uno, il proprio computer o localhost. Per connettersi a un altro server, è necessario aggiungere un altro set di opzioni di configurazione all'array di configurazione. Devi modificare questo file di configurazione.
Prima apri il file config.inc.php contenuto nella cartella phpMyAdmin . Nel server wamp , puoi trovarlo nella cartella wamp \ apps \ phpmyadmin . Quindi aggiungere la seguente parte a quel file.
$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';
Vediamo qual è il significato di queste variabili.
$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
Dopo aver aggiunto questa parte di configurazione, riavvia il server e ora la home page di phpMyAdmin cambierà e mostrerà un campo per selezionare il server.
Ora puoi selezionare il tuo server e accedere al tuo database remoto inserendo username e password per quel database.
Come indicato nella risposta c.hill answer, se si desidera una soluzione sicura, si consiglia di aprire un tunnel SSH sul server.
Ecco il modo di farlo per gli utenti Windows :
Scarica Plink and Putty dal sito Web Putty e posiziona i file nella cartella di tua scelta (Nel mio esempio C:\Putty
)
Apri la console di Windows e cd nella cartella Plink:
cd C:\Putty
Apri il tunnel SSH e reindirizza alla porta 3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
Dove:
Finalmente puoi configurare PhpMyAdmin:
Linee da aggiungere:
$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
Se non si desidera aprire la console ogni volta che è necessario connettersi al server remoto, è sufficiente creare un file batch (salvando le 2 righe di comando in un file .bat).
Lo avrei aggiunto come commento, ma la mia reputazione non è ancora abbastanza elevata.
Sotto la versione 4.5.4.1deb2ubuntu2 e sto indovinando qualsiasi altra versione 4.5.xo successive. Non è necessario modificare il file config.inc.php. Invece vai in un'altra directory giù conf.d.
Crea un nuovo file con l'estensione ".php" e aggiungi le righe. Questo è un approccio meglio modulare e isola ogni informazione di accesso al server di database remoto.
In Ubuntu
Devi solo modificare un singolo file nella cartella PHPMyAdmin, ad esempio "config.inc.php". Basta aggiungere le righe sottostanti al tuo "config.inc.php".
Posizione del file: /var/lib/phpmyadmin/config.inc.php
OR
/etc/phpmyadmin/config.inc.php
Forse non hai il permesso per modificare quel file, ma dai il permesso usando questo comando
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
OPPURE (in sistemi diversi potrebbe essere necessario verificare con queste due posizioni)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
Quindi copia e incolla il codice nel tuo config.inc.php
file
$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;
E apporta le modifiche appropriate con i dettagli del tuo server
Metodo 1 (per multiserver)
Innanzitutto, facciamo un backup della configurazione originale.
sudo cp /etc/phpmyadmin/config.inc.php ~/
Ora in / usr / share / doc / phpmyadmin / esempi / vedrai un file config.manyhosts.inc.php . Copia in / etc / phpmyadmin / usando il comando seguente:
sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php
Modifica il file config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Cercare :
$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);
E aggiungi il tuo array IP o hostname salva (in nano CTRL + X premi Y) ed esci. Fatto
Metodo 2 (server singolo) Modifica config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Cercare :
/* 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;
}
E sostituisci con:
$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';
Ricorda di sostituire 192.168.1.100 con il tuo server mysql ip.
Ci scusiamo per il mio cattivo inglese (google translate ha la colpa: D)
Mentre provo, trovo il file config.default.php
quindi trova $ cfg ['AllowArbitraryServer'] = false;
quindi impostalo su true
nota: su ubuntu il file nel percorso /usr/share/phpmyadmin/libraries/config.default.php
quindi troverai un nuovo nome SERVER archiviato nella pagina principale di PHPMyAdmin, puoi aggiungere ad esso qualsiasi IP o localhost per il database locale.
In Windows con Wamp Server installato è possibile trovare il file di configurazione
C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php
Modificare la linea bolow come appropriato
$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'] = '';
Elimina le voci complete di /etc/http/conf.d/phpMyAdmin.conf
E sotto implica nel file sopra,
<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>
Poi,
esegui sotto il comando nel prompt di MySQL,
GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'
Per riferimento: consentire a IP di accedere a PhpMyAdmin protetto
phpmyadmin
immagine docker localmente e collegarti al tuo server MySQL remoto. maggiori dettagli qui :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin