google app engine denying google sql connection - mysql

I am trying to connect my web application to google sql. The app is running and getting deployed on appspot without database access. However when I try to deploy enable google cloud sql it is giving me following error:
I am to access the cloud sql using mysql command line prompt. Can anybody help what am I doing wrong here. I think there is a problem with appid. I create an application name cfsdonuts on appengine and gave it the access to sql instance. I create the application on eclipse with same appid (because eclipse was not allowing to choose from existing id's not it was allowing me to create new app id at the time of project creation. When I deploy the application on app engine the name comes as http://1-dot-cfsdonuts.appspot.com/. Should I use this name?

Related

Can Flutterflow app access MySQL database from my Google Cloud Instance?

I will create a mobile app for Android and iOS. The purpose of the app is to access just a segment of the MySQL database, that part is for customers (the rest of the database is used by employees via my web application).
Is there a way the for FlutterFlow app to access MySQL database instead of FireBase Storage? If not, what are the alternatives?
Though flutterflow has default integration with Firebase firestore database,
below 2 approaches can be used.
API integration approach can be used to use MYSQL database.
Please refer below flow:
You can have backend Server which will host the API.
This backend server will have integration with MYSQL DB
API's will be consumed in flutterflow app
https://docs.flutterflow.io/data-and-backend/api-calls
Custom code approach (Though have not used it before)
https://docs.flutterflow.io/customizing-your-app/manage-custom-code-in-github

Cannot access Google Cloud SQL database from my App Engine

Last week I tried to setup Google Cloud for a NodeJS API and Cloud SQL database. Overall it works fine, but I can't access my Cloud SQL database. The authorization of the SQL database shows that all apps within the current project are granted to access the database. Unfortunality, this is not true. I need to granted the IP addresses of the instances from the App Engine. The IP adressess of the instances constantly changes after I deploy a newer version of the the API.
Does anybody have a solution to get access from the App Engine to the Cloud SQL database. It's very annoying to add constant the instance ip address to grant the database.
Sample here
Thank you in advance!
Jelle
I was going to suggest to assign a static IP to the app engine, but seems like it's not possible in App engine (it's possible in compute engine though). So lets tackle the root of the problem, you being unable to access cloud sql from App engine, are you sure you followed the instructions of the following link to the letter?
https://cloud.google.com/nodejs/getting-started/using-cloud-sql
This might solve your connection issue if you haven't.

Google App Engine API - Failed to Load Databases - Cloud SQL

I have a Google App Engine PHP website with MySQL database.
The website works and the database works correctly. I have connected the database instance to the application and I can access MySQL Client (and can perform queries).
But when I access the Google Cloud SQL API via the Google App Engine Developers Console (on the google developer console website) the database fails to load.
For example:
I select the correct application/database instance. I go on 'Google Cloud SQL' API and then 'SQL Prompts' but get:
Failed to load databases.
Any reasons as to why this is happening? and how to load the database? or why won't the database load in the first place?
Are you trying to access the link [1] to load your database in your browser.If yes then might be its a browser issue or multiple login problem.
[1] https://console.developers.google.com/project/app-id/sql/instances

How to connect to google cloud sql instance from eclipse using App Engine?

I am trying to connect to google cloud sql instance from eclipse in my app engine connected android project.
So far i am able to connect to cloud sql instance using Class.forname("com.mysql.jdbc.Driver"). But it requires authorising my ip address in google cloud sql every time i want to use the instance hence making it unfeasible.
I know that while connecting from app engine i dont need to authorize my ip address. Bur for that i have to use GoogleDriver ie. Class.forname("com.mysql.jdbc.GoogleDriver").
But when i run my code it gives me ClassNotFoundException.
I am stuck at this situation for a long time. Please give me a proper solution to the problem
The GoogleDriver is only intended to be used when actually running on App Engine. When running from eclipse or the dev_appserver you will have to use the stock com.mysql.jdbc.Driver class, and you will have to authorize your IP address. A good example of this is shown in the documentation, which demonstrates how to choose in code which driver to use. Note the commented out line for connecting from your dev environment to Cloud SQL.
As an FYI don't forget to enable the connector for running on App Engine.
I have authorised 0.0.0.0/0 in access control in my cloud instance and now all the devices are able to connect to the cloud instance with stock mysql driver ie. com.mysql.jdbc.Driver without need to changing authorised network again and again in access control.
Still can't figure out to implement GoogleDriver but for now this solution will work.
If anyone find a more better and general way to connect to cloud instance please post your answer.

How to connect local database to Google Cloud SQL?

Since i am new to Google App Engine, I am using MySQL database locally and I am running a sample application in Google App Engine. But i need to use database also using Google Cloud SQL, I referred some details in the Google developer zone and found some information in connecting Google Cloud SQL using googlemysql connection
I have used a sample code for MySQL connection
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// Load the class that provides the new "jdbc:google:mysql://"
// prefix.
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://azk-net:your-instance-name/guestbook?user=root";
} else {
// Local MySQL instance to use during development.
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://127.0.0.1:3306/guestbook?user=root";
// Alternatively, connect to a Google Cloud SQL instance using:
// jdbc:mysql://ip-address-of-google-cloud-sql-instance:3306/guestbook?user=root
}
but the thing is i cannot create instance name for my project. In local it is working correctly but i have deployed in the google app engine i am getting error since instance name is not available
I am creating the instance name in the Google Cloud SQL but it is not creating it requires billing.
can anyone help me to connect the database from local to Google Cloud SQL by writing connection properties for accessing database from Google Cloud SQL.
There's no free quota for Google Cloud SQL, you have to enable billing to use it
Google offers two billing plans for Cloud SQL: Packages and Per Use. More information on pricing for Google Cloud SQL can be found on the Cloud SQL Pricing page.