我们已经尝试了几乎所有可以在stackoverflow上找到的解决方案,但是仍然得到这个错误。
我们在laravel项目中使用googlecloudsql。我们已经在appengine中部署了我们的项目,并且正在使用cloudsql进行数据库连接。我们按照此进行部署,但部署后无法连接到数据库,出现错误:
sqlstate[hy000][2002]没有这样的文件或目录。
sqlstate[hy000][2002]没有这样的文件或目录(sql:select*from) sessions
哪里 id
=DBZQD19NOIBFWNDCLABNYXTHLIGE96OM3T9MJDU限值1)
我们可以建立与公共示例ip的连接,在我们的本地开发中它正在工作,但是当我们在appengine上部署代码时,我们就遇到了这个问题。
app.yaml文件配置:
runtime: php
api_version: '1.0'
env: flexible
threadsafe: true
env_variables:
APP_DEBUG: 'True'
APP_KEY: '<APP KEY HERE>'
APP_LOG: errorlog
APP_NAME: <APP NAME HERE>
beta_settings: None
CACHE_DRIVER: database
cloud_sql_instances: '<project-id-here>:<region-here>:<name here>'
DB_DATABASE: <name here>
DB_HOST: 127.0.0.1 or localhost (neither work)
DB_PASSWORD: <PASSWORD HERE> (also leaving empty doesn't work)
DB_SOCKET: /mysql/mysql.sock
DB_USERNAME: root
SESSION_DRIVER: database
STORAGE_DIR: /tmp
automatic_scaling:
min_num_instances: 2
max_num_instances: 20
cpu_utilization:
target_utilization: 0.5
1条答案
按热度按时间yptwkmov1#
问题是unix套接字文件路径当前设置为
/mysql/mysql.sock
. 应该设置为/cloudsql/<INSTANCE_CONNECTION_NAME
从应用程序引擎示例连接。查看cloud sql文档中的connecting from app engine页面。