Strapi + Cloud SQL for MySQL on Google App Engine - Server wasn't able to start properly Error: getaddrinfo EAI_AGAIN
Strapi + Cloud SQL for MySQL on Google App Engine - Server wasn't able to start properly Error: getaddrinfo EAI_AGAIN
我正在尝试将我的 Strapi 应用程序启动到 Google App Engine,我确实部署成功,但我不断在日志中收到此错误:
Server wasn't able to start properly
Error: getaddrinfo EAI_AGAIN /cloudsql/connectionName
错误日志:
我按照部署说明进行了操作,但可能缺少某些内容,就像我的应用程序无法与我的 MySQL 数据库的 Cloud SQL 建立连接。
这是我的 .yaml 文件:
runtime: nodejs12
instance_class: F2
env_variables:
HOST: '0.0.0.0'
NODE_ENV: 'production'
DATABASE_NAME: 'test'
DATABASE_USERNAME: '***'
DATABASE_PASSWORD: '***'
INSTANCE_CONNECTION_NAME: '***'
beta_settings:
cloud_sql_instances: '***'
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'mysql',
host: `/cloudsql/${env('INSTANCE_CONNECTION_NAME')}`,
database: env('DATABASE_NAME'),
username: env('DATABASE_USERNAME'),
password: env('DATABASE_PASSWORD'),
},
},
},
});
如果有人知道这件事并能帮助我,我将不胜感激。
查看了他们官方docs and GitHub issue,原来通过Unix Socket on Cloud SQL连接时正常的是将host
改为socketPath
,相反目前写的是socket
(不知道为什么不写)。我测试过,它适用于 v3.6.1。
遵循他们的部署指南后,在您的项目上安装 mysql 驱动程序:
yarn add mysql
然后,将 host
更改为 socketPath
:
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'mysql',
socketPath: `/cloudsql/${env('INSTANCE_CONNECTION_NAME')}`,
database: env('DATABASE_NAME'),
username: env('DATABASE_USERNAME'),
password: env('DATABASE_PASSWORD'),
},
},
},
});
然后要管理您的项目,请转到 GAE URL 的 /admin 管理面板。
我正在尝试将我的 Strapi 应用程序启动到 Google App Engine,我确实部署成功,但我不断在日志中收到此错误:
Server wasn't able to start properly Error: getaddrinfo EAI_AGAIN /cloudsql/connectionName
错误日志:
我按照部署说明进行了操作,但可能缺少某些内容,就像我的应用程序无法与我的 MySQL 数据库的 Cloud SQL 建立连接。
这是我的 .yaml 文件:
runtime: nodejs12
instance_class: F2
env_variables:
HOST: '0.0.0.0'
NODE_ENV: 'production'
DATABASE_NAME: 'test'
DATABASE_USERNAME: '***'
DATABASE_PASSWORD: '***'
INSTANCE_CONNECTION_NAME: '***'
beta_settings:
cloud_sql_instances: '***'
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'mysql',
host: `/cloudsql/${env('INSTANCE_CONNECTION_NAME')}`,
database: env('DATABASE_NAME'),
username: env('DATABASE_USERNAME'),
password: env('DATABASE_PASSWORD'),
},
},
},
});
如果有人知道这件事并能帮助我,我将不胜感激。
查看了他们官方docs and GitHub issue,原来通过Unix Socket on Cloud SQL连接时正常的是将host
改为socketPath
,相反目前写的是socket
(不知道为什么不写)。我测试过,它适用于 v3.6.1。
遵循他们的部署指南后,在您的项目上安装 mysql 驱动程序:
yarn add mysql
然后,将 host
更改为 socketPath
:
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'mysql',
socketPath: `/cloudsql/${env('INSTANCE_CONNECTION_NAME')}`,
database: env('DATABASE_NAME'),
username: env('DATABASE_USERNAME'),
password: env('DATABASE_PASSWORD'),
},
},
},
});
然后要管理您的项目,请转到 GAE URL 的 /admin 管理面板。