Tenho certeza de que não foi testado no phpMyAdmin, mas de acordo com a escassa documentação do MySQL, consegui descobrir que deve ser possível especificando
$cfg['Servers'][$i]['host'] = '.';
para usar o pipe nomeado padrão. Suponho que seu connect_type
seria 'tcp', mas se isso não funcionar, tente 'socket'. Você pode especificar um pipe nomeado não padrão no $cfg['Servers'][$i]['socket']
campo. Se você tiver sucesso, seria interessante conhecer a documentação do phpMyAdmin. Editar:
Os pipes são tratados de forma diferente de uma conexão TCP/IP, basicamente um recurso abstrato do Windows em vez de uma parte da pilha de rede. Posso estar enganado sobre a necessidade de usar o campo host, pode ser que você precise deixá-lo totalmente em branco, mas a documentação do cliente MySQL é clara para usar
.
como o host (ou o --pipe
opção) ao usar o cliente de linha de comando MySQL. Mais sobre isso em um momento. Você não colocaria o host remoto aqui, porque o próprio pipe nomeado consiste no nome do servidor e no pipe, como
\\ServerName\pipe\mysqlpipe
(documentação da Microsoft ), que você também teria que configurar no servidor MySQL iniciando o servidor com --socket='\\.\pipe\mysqlpipe'
ou alguma variação próxima disso (e --enabled-named-pipe
é claro (documentação do MySQL
)). Eu começaria testando com o cliente de linha de comando MySQL no servidor, uma vez que você tenha o serviço MySQL em execução, tente conectar-se a partir do cliente de linha de comando com algo como
mysql --pipe --socket=\\.\pipe\mysqlpipe -u root -p
(documentação do MySQL
). Uma vez conectado, use o comando SQL STATUS;
para verificar seu tipo de conexão. Se você não puder se conectar a partir do cliente de linha de comando MySQL na máquina local, certamente não poderá se conectar a partir de um sistema remoto. Se isso funcionar, é hora de tentar o cliente de linha de comando remoto ou ir direto para a conexão phpMyAdmin remota, onde você usaria o nome do servidor em vez de .
no caminho do soquete (que é realmente o caminho do pipe nomeado).