Verifiquei substituindo "xx.xx.xx.xx" pelo endereço IP do servidor mysql remoto e certifique-se de que o banco de dados tenha permissão para acessar através do seu endereço IP.
$cfg['Servers'][$i]['host'] = 'XX.XX.XX.XX';
Tentando fazer com que o phpMyAdmin converse com um servidor mySQL remoto. A configuração está abaixo e já existe um usuário configurado no banco de dados MySQL para poder efetuar login a partir do host especificado em que a PMA está localizada. A hospedagem é fornecida pela Rackspace (Rightscale) e pelos dois servidores em nuvem atrás do mesmo firewall.
[config.inc.php]
<?php
$cfg['blowfish_secret'] = '';
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'XX.XX.XX.XX'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension'] = 'mysql'; // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress'] = FALSE; // Use compressed protocol for the MySQL connection
// (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings
// (this user must have read-only
$cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user"
// and "mysql/db" tables).
// The controluser is also
// used for all relational
// features (pmadb)
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'USERNAME'; // MySQL user
$cfg['Servers'][$i]['password'] = 'PASSWORD'; // MySQL password (only needed
// with 'config' auth_type)
$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only
// this db is displayed in left frame
// It may also be an array of db-names, where sorting order is relevant.
$cfg['Servers'][$i]['hide_db'] = ''; // Database name to be hidden from listings
$cfg['Servers'][$i]['verbose'] = ''; // Verbose name for this host - leave blank to show the hostname
$cfg['Servers'][$i]['pmadb'] = ''; // Database used for Relation, Bookmark and PDF Features
// (see scripts/create_tables.sql)
// - leave blank for no support
// DEFAULT: 'phpmyadmin'
$cfg['Servers'][$i]['bookmarktable'] = ''; // Bookmark table
// - leave blank for no bookmark support
// DEFAULT: 'pma_bookmark'
$cfg['Servers'][$i]['relation'] = ''; // table to describe the relation between links (see doc)
// - leave blank for no relation-links support
// DEFAULT: 'pma_relation'
$cfg['Servers'][$i]['table_info'] = ''; // table to describe the display fields
// - leave blank for no display fields support
// DEFAULT: 'pma_table_info'
$cfg['Servers'][$i]['table_coords'] = ''; // table to describe the tables position for the PDF schema
// - leave blank for no PDF schema support
// DEFAULT: 'pma_table_coords'
$cfg['Servers'][$i]['pdf_pages'] = ''; // table to describe pages of relationpdf
// - leave blank if you don't want to use this
// DEFAULT: 'pma_pdf_pages'
$cfg['Servers'][$i]['column_info'] = ''; // table to store column information
// - leave blank for no column comments/mime types
// DEFAULT: 'pma_column_info'
$cfg['Servers'][$i]['history'] = ''; // table to store SQL history
// - leave blank for no SQL query history
// DEFAULT: 'pma_history'
$cfg['Servers'][$i]['verbose_check'] = TRUE; // set to FALSE if you know that your pma_* tables
// are up to date. This prevents compatibility
// checks and thereby increases performance.
$cfg['Servers'][$i]['AllowRoot'] = TRUE; // whether to allow root login
$cfg['Servers'][$i]['AllowDeny']['order'] // Host authentication order, leave blank to not use
= '';
$cfg['Servers'][$i]['AllowDeny']['rules'] // Host authentication rules, leave blank for defaults
= array();
Por favor, deixe-me saber se você precisar de mais informações.
- Malcolm
Verifiquei substituindo "xx.xx.xx.xx" pelo endereço IP do servidor mysql remoto e certifique-se de que o banco de dados tenha permissão para acessar através do seu endereço IP.
$cfg['Servers'][$i]['host'] = 'XX.XX.XX.XX';
Existem algumas coisas que podem estar em jogo:
O aplicativo em si não está usando o mesmo endereço de origem do qual você está se conectando ao servidor MySQL na linha de comando. Se o servidor e o aplicativo forem locais um para o outro, pode ser uma simples mistura de 127.0.0.1
vs localhost
, que o MySQL trata como hosts diferentes e, portanto, eles precisam de diferentes máscaras de permissão. Da mesma forma, se o seu webapp é SNATed atrás de um firewall, é muito provável que o MySQL esteja vendo um IP de origem diferente.
Outra fonte comum de problemas é usar nomes de host DNS em máscaras de privilégios. Se você estiver fazendo isso (por exemplo, 'user'@'foo.bar.com'
) e a resolução do DNS falhar ou se seus registros de encaminhamento / reversão não corresponderem, o MySQL não permitirá a conexão.
Se nenhum desses casos for o caso, você também pode tentar afrouxar temporariamente as permissões para 'user'@'%'
para ver se isso alivia o problema.