Pregunta

Estoy intentando conectar con un servidor remoto MySQL desde mi máquina local host virtual usando el siguiente código:

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

Mi problema es que soy incapaz de conectar a nivel local, recibiendo el error:

  

No se puede conectar al servidor MySQL en 'xxx.xxx.xxx.xxx' (10060)

Este no es el caso cuando subo el mismo archivo PHP en el servidor. Soy capaz de consultar la base de datos sin ningún problema en absoluto.

Soy incapaz de conectarse a través de línea de comandos o bien, pero no puedo acceder a cPanel lo que descarta la posibilidad de que mi IP está prohibido por accidente.

Mi servidor local se está ejecutando PHP 5.2.9, el servidor remoto 5.2.12

¿Fue útil?

Solución

  • cortafuegos del servidor debe ser puesta en marcha para permitir incomming conexiones en el puerto 3306
  • debe tener un usuario en MySQL que se le permite conectarse desde % (cualquier host) (ver manual para más detalles)

El problema actual es el primero, pero justo después de resolver que es probable que obtener el segundo.

Otros consejos

Es muy fácil de conectar MySQL servidor remoto mediante PHP, lo que tiene que hacer es:

  1. Crear un usuario MySQL en el servidor remoto.

  2. privilegiar total al usuario.

  3. conectar con el servidor utilizando código de PHP (muestra dada abajo)

$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

Me acabo de resolver este tipo de problema. Lo que he aprendido es:

  1. que tendrá que editar el my.cnf y establecer el bind-address = your.mysql.server.address bajo [mysqld]
  2. comente campo skip-networking
  3. reiniciar mysqld
  4. comprobar si se está ejecutando

    mysql -u root -h your.mysql.server.address –p 
    
  5. crear un usuario (usr o cualquier cosa) con% Dominio y concederle el acceso a la base de datos en cuestión.

    mysql> CREATE USER 'usr'@'%' IDENTIFIED BY 'some_pass';
    mysql> GRANT ALL PRIVILEGES ON testDb.* TO 'monty'@'%' WITH GRANT OPTION;
    
  6. cortafuegos abierto para el puerto 3306 (se puede usar iptables. Asegurarse de que abrir el puerto de eithe reveryone, o si usted está en securety apretado, entonces sólo permiten la dirección del cliente)

  7. cortafuegos reinicio / iptables

usted debe ser capaz de ahora conectar el servidor MySQL formar su cliente script php servidor.

Esto quizás no sea la respuesta a question.But del cartel de este mes de mayo útil para las personas cuyo rostro misma situación conmigo:

El cliente tiene dos tarjetas de red, un uno inalámbrico y uno normal. El ping al servidor puede ser succeed.However telnet serverAddress 3306 fallaría. Y se queja

  

No se puede conectar al servidor MySQL en 'xxx.xxx.xxx.xxx' (10060)

cuando intento para conectar con server.So me ha prohibido los adaptadores de red normales. Y telnet serverAddress 3306 probado works.And entonces funciona cuando se conecte al servidor de MySQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top