I ran into the same problem and found the answer here. All I had to do was enable the Cloud SQL API. Also, check the error logs for startup errors:
Here are the first three lines of my logs before I actived the API:
On Tuesday, March 28, 2017 at 6:10:19 AM UTC-7, John Hamm wrote:
-- gcloud app logs tail -s default
2017-05-17 21:49:32 default[20170517t144427] 2017/05/17 21:49:32 Ready for new connections2017-05-17 21:49:32 default[20170517t144427] 2017/05/17 21:49:32 errors parsing config:2017-05-17 21:49:32 default[20170517t144427] googleapi: Error 403: Access Not Configured. Cloud SQL Administration API has not been used in project [redacted] before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/sqladmin/overview?project=[redacted] then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry., accessNotConfigured
On Tuesday, March 28, 2017 at 6:10:19 AM UTC-7, John Hamm wrote:
I'm trying to learn Google Cloud Platform and going through the Cloud SQL bookshelf app tutorial for NodeJS (https://cloud.google.com/nodejs/getting-started/using- ) and had no problem setting up the project, app engine, and running locally with the Cloud SQL proxy. But when deployed, I get an error (connect ECONNREFUSED 127.0.0.1:3306) when loading the app URL ([PROJECT_ID].appspot.com).cloud-sql I searched for fixes and found some saying that the issue is that the NODE_ENV being looked at in the model-cloudsql.js checks to see if it is "production", but nowhere else is it defined as that, so it is trying to use localhost. So I tried adding that to the config.json and adding to env vars in config.js, and deploying, but then I get a different error (connect ENOENT /cloudsql/bookshelf-nodejs-tutorial:us-central1: bookshelf-mysql). So at least it looks like it is using the socketPath, but I can't figure out where to go from here to get the app working. Here's some of the code I changed:config.json:
{
"GCLOUD_PROJECT": "************************",
"DATA_BACKEND": "cloudsql",
"MYSQL_USER": "****",
"MYSQL_PASSWORD": "*******",
"INSTANCE_CONNECTION_NAME": "bookshelf-nodejs-tutorial:us-central1:bookshelf-mysql" ,
"NODE_ENV": "production"
}config.js:
'use strict';
const nconf = module.exports = require('nconf');
const path = require('path');
nconf
// 1. Command-line arguments
.argv()
// 2. Environment variables
.env([
'DATA_BACKEND',
'GCLOUD_PROJECT',
'MONGO_URL',
'MONGO_COLLECTION',
'MYSQL_USER',
'MYSQL_PASSWORD',
'PORT',
'NODE_ENV'
])
// 3. Config file
.file({ file: path.join(__dirname, 'config.json') })
// 4. Defaults
.defaults({
// dataBackend can be 'datastore', 'cloudsql', or 'mongodb'. Be sure to
// configure the appropriate settings for each storage engine below.
// If you are unsure, use datastore as it requires no additional
// configuration.
DATA_BACKEND: 'datastore',
// This is the id of your project in the Google Cloud Developers Console.
GCLOUD_PROJECT: '',
// MongoDB connection string
// https://docs.mongodb.org/manual/reference/connection- string/
MONGO_URL: 'mongodb://localhost:27017',
MONGO_COLLECTION: 'books',
MYSQL_USER: '',
MYSQL_PASSWORD: '',
// Port the HTTP server
PORT: 8080
});All other files remained the same. Any help would be appreciated so I can move on to the next sections of the tutorial.
https://[YOUR_PROJECT_ID].appspot.com
https://[YOUR_PROJECT_ID].appspot.com
https://[YOUR_PROJECT_ID].appspot.com
https://[YOUR_PROJECT_ID].appspot.com
You received this message because you are subscribed to the Google Groups "Google Cloud SQL discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-cloud-sql-discuss+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-cloud-sql-discuss/88ba0092-e090-4447-be6c-4af0311105f6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment