本文介紹了在Google App Engine上使用Strapi+Cloud SQL for MySQL-服務器無法正確啟動錯誤:getaddrinfo EAI_Again的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試將我的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的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,