Domanda

Sto tentando di connettersi a un server MySQL remoto dalla mia macchina locale virtualhost utilizzando il seguente codice:

$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error());
        mysql_select_db($dbname, $conn) or die(mysql_error());

Il mio problema è che io sono in grado di connettersi a livello locale, che riceve l'errore:

  

Impossibile connettersi al server MySQL su 'xxx.xxx.xxx.xxx' (10060)

Questo non è il caso quando si invia lo stesso file PHP per il server. Sono in grado di interrogare il database senza problemi a tutti.

Sono in grado di connettersi tramite linea di comando sia, ma posso accedere a cPanel che esclude la possibilità di mio IP di essere bandito accidentalmente.

Il mio server locale è in esecuzione PHP 5.2.9, il server remoto 5.2.12

È stato utile?

Soluzione

  • firewall del server deve essere messa a punto per consentire connessioni in entrata sulla porta 3306
  • è necessario disporre di un utente in MySQL chi è autorizzato a connettersi da % (qualsiasi host) (vedi manuale per i dettagli)

Il problema attuale è la prima, ma subito dopo aver risolto vi sarà probabilmente ottenere il secondo.

Altri suggerimenti

E 'molto facile da collegare server MySQL remoto Utilizzo di PHP, quello che devi fare è:

  1. Creazione di un utente MySQL nel server remoto.

  2. privilegiare completa per l'utente.

  3. connettersi al server utilizzando codice PHP (campione indicata sotto)

$link = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

echo 'Connected successfully';

mysql_select_db('sandsbtob',$link) or die ("could not open db".mysql_error());
// we connect to localhost at port 3306

Ho appena risolto questo tipo di problema. Quello che ho imparato è:

  1. dovrete modificare il my.cnf e impostare il bind-address = your.mysql.server.address sotto [mysqld]
  2. commentare campo skip-networking
  3. restart mysqld
  4. controllare se è in esecuzione

    mysql -u root -h your.mysql.server.address –p 
    
  5. creare un utente (usr o qualsiasi cosa) con% come dominio e garantire il suo accesso al database in questione.

    mysql> CREATE USER 'usr'@'%' IDENTIFIED BY 'some_pass';
    mysql> GRANT ALL PRIVILEGES ON testDb.* TO 'monty'@'%' WITH GRANT OPTION;
    
  6. Firewall aperto per la porta 3306 (è possibile utilizzare iptables. Assicuratevi di aprire la porta per eithe reveryone, o se siete in securety stretto, poi consentire solo l'indirizzo del client)

  7. firewall riavvio / iptables

si dovrebbe essere in grado di connettere il server MySQL formano lo script del server php client.

Questa forse non è la risposta alla question.But dell'inserzionista questo può utile per le persone il cui volto situazione stesso con me:

Il client ha due schede di rete, uno wireless e uno normale. Il ping al server può essere succeed.However telnet serverAddress 3306 fallirebbe. E si lamentano

  

Impossibile connettersi al server MySQL su 'xxx.xxx.xxx.xxx' (10060)

quando tenta di connettersi a server.So ho proibito le schede di rete normali. E telnet serverAddress 3306 provato works.And allora funziona quando connettersi al server MySQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top