将本地 Laravel 环境连接到 Google 云 SQL - MySQL

Connect local Laravel environment to Google Cloud SQL - MySQL

我尝试将我的 Laravel 项目连接到我的本地开发环境到 Google 云 SQL (MySQL)。

为此,我使用云 SQL-Proxyclient 从我的 OSX 终端连接到端口 3307 的远程数据库。 我可以用我的 MySQL Workbench 连接到远程数据库,我可以 see/change 表,...

进入我的 Laravel 项目进入 .env 我更改了设置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=mydatabasename
DB_USERNAME=mydatabaseusername
DB_PASSWORD=mydatabasepassword

当我在浏览器中打开我的项目时,在我看不到的终端中,有东西试图使用连接。 进入浏览器我收到一条错误消息: SQLSTATE[HY000] [2002] 没有那个文件或目录 (2002)

我想,项目无法连接到远程数据库

我该如何解决这个问题?

感谢帮助!

确保您有正确的配置 DB_HOST。让我们获取 IPv4 阅读此内容以获取更多信息: https://cloud.google.com/sql/docs/mysql/connect-external-app#appaccessIP

虽然 Cloud SQL Proxy 在端口 3307 上连接到您的数据库,但您想在端口 3306 上连接到云 SQL 代理(这是默认 mysql端口)。您还可以通过更新实例参数来指定自定义端口:

./cloud_sql_proxy -instances=my-project:us-central1:sql-inst=tcp:3306 &

我现在添加了 public 服务器的 IP 地址,并将我的本地 IP 地址添加到 MySQL 服务器的允许 IP 地址。现在可以了。