• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

287
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 3 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 3 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 3 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 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda