在Google App Engine上使用Strapi+Cloud SQL for MySQL-服务器无法正确启动错误:getaddrinfo EAI_Again

本教程将介绍在Google App Engine上使用Strapi+Cloud SQL for MySQL-服务器无法正确启动错误:getaddrinfo EAI_Again的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

在Google App Engine上使用Strapi+Cloud SQL for MySQL-服务器无法正确启动错误:getaddrinfo EAI_Again 教程 第1张

问题描述

我正在尝试将我的Strapi应用程序启动到Google App Engine中,我确实部署成功,但我在日志中不断收到以下错误:

服务器无法正常启动
错误:getaddrinfo EAI_Again/CloudSQL/ConnectionName

错误日志:

我按照部署说明操作,但可能缺少一些东西,比如我的应用程序无法与我的Cloud SQL for MySQL数据库建立连接。

这是我的.yaml文件:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">

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: '***'

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">

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和gihubissue,发现在Cloud SQL上通过unix套接字连接正常的是host改为socketPath,而不是现在写的socket(不知道为什么不是)。我测试了一下,它可以在3.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。

好了关于在Google App Engine上使用Strapi+Cloud SQL for MySQL-服务器无法正确启动错误:getaddrinfo EAI_Again的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。