Respostas:
Basta adicionar linhas abaixo ao seu /etc/phpmyadmin/config.inc.php
arquivo na parte inferior:
$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
. Você receberá o “Servidor atual:” suspenso com “127.0.0.1” e um que você forneceu com a troca de came “$ cfg ['Servers'] [$ i] ['host']” entre os servidores.
mais detalhes: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/
$i++
é um ponto importante, pois isso não nos fará perder a conexão do banco de dados com o padrão localhost
.
/etc/phpmyadmin/config.inc.php
é o arquivo correto a ser alterado
config.inc.php
arquivo está localizado no Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
arquivo
Certamente é possível acessar um servidor MySQL remoto a partir de uma instância local do phpMyAdmin, como as outras respostas apontaram. E para que isso funcione, você precisa configurar o servidor MySQL do servidor remoto para aceitar conexões remotas e permitir tráfego através do firewall para o número da porta que o MySQL está ouvindo. Eu prefiro uma solução ligeiramente diferente envolvendo o tunelamento SSH .
O comando a seguir configurará um túnel SSH que encaminhará todas as solicitações feitas para a porta 3307 da sua máquina local para a porta 3306 na máquina remota:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
Quando solicitado, você deve digitar a senha do usuário root na máquina remota. Isso abrirá o túnel. Se você quiser executar isso em segundo plano, precisará adicionar o -f
argumento e configurar o SSH sem senha entre a máquina local e a máquina remota.
Depois que o túnel SSH estiver funcionando, você poderá adicionar o servidor remoto à lista de servidores no phpMyAdmin local, modificando o /etc/phpmyadmin/config.inc.php
arquivo. Adicione o seguinte ao final do arquivo:
$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++;
Eu escrevi um post de blog mais aprofundado sobre exatamente isso, caso você precise de ajuda adicional.
$++
definitivamente deveria ser a primeira linha, não a última, pelo menos para o meu phpmyadmin.conf padrão.
Isso pode ser feito, mas você precisa alterar a configuração do phpMyAdmin, leia esta postagem: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin
Se, por qualquer motivo, o link acabar, você poderá usar as seguintes etapas:
config.inc.php
$cfg['Servers'][$i]['host']
variável e defina-a como o IP ou o nome do host do seu servidor remoto$cfg['Servers'][$i]['port']
variável e defina-a na porta mysql remota. Geralmente isso é3306
$cfg['Servers'][$i]['user']
e $cfg['Servers'][$i]['password']
variáveis e definir estes para seu nome de usuário e senha para o servidor remotoSem uma configuração adequada do servidor, a conexão pode ser mais lenta que uma conexão local, por exemplo, provavelmente seria um pouco mais rápido usar endereços IP em vez de nomes de host para evitar que o servidor tenha que procurar o endereço IP pelo nome do host.
Além disso, lembre-se de que o nome de usuário e a senha do seu banco de dados remoto são armazenados em texto sem formatação quando você se conecta dessa maneira; portanto, você deve tomar medidas para garantir que ninguém possa acessar esse arquivo de configuração. Como alternativa, você pode deixar em branco as variáveis de nome de usuário e senha para que sejam solicitadas a inseri-las sempre que efetuar login, o que é muito mais seguro.
Siga esta postagem do blog. Você pode fazer isso com muita facilidade. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
O arquivo config.inc.php contém as configurações da sua instalação do phpMyAdmin. Ele usa uma matriz para armazenar conjuntos de opções de configuração para cada servidor ao qual ele pode se conectar e, por padrão, há apenas um, sua própria máquina ou host local. Para conectar-se a outro servidor, você teria que adicionar outro conjunto de opções de configuração à matriz de configurações. Você precisa editar este arquivo de configuração.
Primeiro abra o arquivo config.inc.php na pasta phpMyAdmin . No servidor wamp , você pode encontrá-lo na pasta wamp \ apps \ phpmyadmin . Em seguida, adicione a parte a seguir nesse arquivo.
$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';
Vamos ver qual é o significado dessas variáveis.
$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
Após adicionar esta parte da configuração, reinicie o servidor e agora sua página inicial do phpMyAdmin será alterada e mostrará um campo para selecionar o servidor.
Agora você pode selecionar seu servidor e acessar seu banco de dados remoto digitando nome de usuário e senha para esse banco de dados.
Conforme indicado na resposta c.hill answer, se você quiser uma solução segura , aconselho a abrir um túnel SSH para o servidor.
Aqui está a maneira de fazer isso para usuários do Windows :
Faça o download do Plink e do Putty no site do Putty e coloque os arquivos na pasta de sua escolha (no meu exemplo C:\Putty
)
Abra o console do Windows e o CD na pasta Plink:
cd C:\Putty
Abra o túnel SSH e redirecione para a porta 3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
Onde:
Finalmente, você pode configurar o PhpMyAdmin:
Linhas a serem adicionadas:
$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 você não deseja abrir o console sempre que precisar se conectar ao servidor remoto, basta criar um arquivo em lotes (salvando as 2 linhas de comando em um arquivo .bat).
Eu acrescentaria isso como um comentário, mas minha reputação ainda não é alta o suficiente.
Na versão 4.5.4.1deb2ubuntu2, e acho que qualquer outra versão 4.5.x ou mais recente. Não há necessidade de modificar o arquivo config.inc.php. Em vez disso, vá mais um diretório para baixo conf.d.
Crie um novo arquivo com a extensão '.php' e adicione as linhas. Essa é uma abordagem modularizada melhor e isola as informações de acesso de cada servidor de banco de dados remoto.
No Ubuntu
Você só precisa modificar um único arquivo na pasta PHPMyAdmin, isto é, “config.inc.php”. Basta adicionar as linhas abaixo ao seu “config.inc.php”.
Local do arquivo: /var/lib/phpmyadmin/config.inc.php
OR
/etc/phpmyadmin/config.inc.php
Talvez você não tenha permissão para editar esse arquivo, apenas dê a permissão usando este comando
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
OU (em sistemas diferentes, talvez seja necessário verificar com esses dois locais)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
Em seguida, copie e cole o código no seu config.inc.php
arquivo
$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 faça as alterações apropriadas com os detalhes do servidor
Método 1 (para multiserver)
Primeiro, vamos fazer um backup da configuração original.
sudo cp /etc/phpmyadmin/config.inc.php ~/
Agora em / usr / share / doc / phpmyadmin / examples / você verá um arquivo config.manyhosts.inc.php . Basta copiar para / etc / phpmyadmin / usando o comando abaixo:
sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php
Edite o arquivo config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Procurar por :
$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);
E adicione seu array de ip ou hostname save (no nano CTRL + X, pressione Y) e saia. Feito
Método 2 (servidor único) Edite o config.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
Procurar por :
/* 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 substitua por:
$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';
Lembre-se de substituir 192.168.1.100 pelo seu próprio servidor mysql ip.
Desculpe pelo meu inglês ruim (o google tradutor tem a culpa: D)
Enquanto testo ele encontra o arquivo config.default.php
então encontre $ cfg ['AllowArbitraryServer'] = false;
em seguida, defina-o como true
note: no ubuntu, o arquivo no caminho /usr/share/phpmyadmin/libraries/config.default.php
em seguida, você encontrará um novo nome de arquivo SERVER na página principal do PHPMyAdmin e poderá adicionar qualquer IP ou host local para o banco de dados local.
No Windows com o Wamp Server instalado, você pode encontrar o arquivo de configuração
C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php
Mude a linha do parafuso conforme apropriado
$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'] = '';
Excluir entradas completas de /etc/http/conf.d/phpMyAdmin.conf
E abaixo entra no arquivo acima,
<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>
Então,
execute o comando abaixo no prompt do MySQL,
GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'
Para referência: Permitir que o IP acesse o PhpMyAdmin protegido
phpmyadmin
imagem do docker localmente e conectar-se ao seu servidor MySQL remoto. mais detalhes aqui :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin