Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

346
Vistas
No se puede conectar a mysql usando PHP en la nube de Google. No hay mensajes emergentes de error

Este es mi código main.php solo para intentar conectarme a la base de datos MySQL y verificar si se puede conectar o no.

 <?php $USER = "root"; $PASS = "";// I do have a password. I just haven't mentioned on StackOverflow $IP = "104.199.248.141"; $DB = "Contacts"; $conn = mysqli_connect($IP,$USER,$PASS,$DB,null,"/cloudsql/adiscontactbook:asia-east1:contacts-book"); if($conn != null) { print("Connected! :*"); mysqli_close($conn); } else { print("Can't connect! :("); } ?>

Y este es app.yaml :

 runtime: php55 api_version: 1 threadsafe: yes handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: .* script: main.php

PUEDO conectarme a mi instancia de mysql a través de la terminal escribiendo:

 mysql --host=104.199.248.141 --user=root --password

¡y la salida en el terminal está Connected! :* .

Esta es la URL de mi aplicación: https://adiscontactbook.appspot.com/

Cuando escribo la URL en el navegador, aparece Can't connect! :( .

PD: Le he dado permisos a mi aplicación y también a mi computadora local en la sección Authorize networks para acceder a la instancia de mysql ingresando la dirección IP 35.185.186.77 (IP externa de mi aplicación) y 14.97.103.225 respectivamente.

¿Por qué no tengo problemas para acceder a él a través de la terminal pero no puedo conectarme a través del navegador escribiendo la URL?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Debe pasar nulo al parámetro $host , ya que se está conectando a través de un socket.

 $conn = mysqli(null, $USER, $PASS, $DB,null, "/cloudsql/adiscontactbook:asia-east1:contacts-book")
over 4 years ago · Santiago Trujillo Denunciar

0

El quinto parámetro de mysqli_connect es el número de puerto y el sexto parámetro es la ruta del socket. Puede intentar omitir los parámetros quinto y sexto. Consulte la documentación de mysqli_connect ( http://php.net/manual/en/function.mysqli-connect.php )

over 4 years ago · Santiago Trujillo Denunciar

0

Pasé un día entero tratando de resolver esto... estaba convirtiendo de mysql a mysqli en preparación para php7 y CloudSQL de segunda generación de appengine. No pude encontrar en ninguna parte del documento que tuviera que usar este formato de 6 parámetros para la función mysqli_connect().

Además, el ":" que precede al nombre del servidor en mysql_connect debe eliminarse (pero no la barra diagonal '/') cuando se usa con mysqli. Por eso:

 $servername=":/cloudsql/project:us-east1:database";

se convierte en:

 $servername="/cloudsql/project:us-east1:database";
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda