【问题标题】:Connect Laravel 5.4 with Google cloud mysql locally本地连接 Laravel 5.4 与谷歌云 mysql
【发布时间】:2018-02-11 07:51:11
【问题描述】:

我正在尝试将本地 Laravel 应用程序连接到 GCP mysql 实例。我只是想使用 mysql 实例进行本地开发,不想在 App Engine 上上传它。

步骤如下:
1. mysql实例授权网络添加IP
2. 更新 .env 文件(参考下文) 3. 可以通过 gcloud sql connect -u=root 连接到数据库实例并访问数据库。
4.尝试配置config/database.php文件
5. 使用实例 IP 连接而不是 localhost
6. 使用 DB_SOCKET : /cloudsql/:asia-northeast1:

.env 文件

APP_NAME=Laravel
APP_ENV=local
APP_KEY=<app-key>
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=<instance-ip>
DB_PORT=3306
DB_DATABASE=<db-name>
DB_USERNAME=root
DB_PASSWORD=*********
DB_SOCKET=/cloudsql/<project-id>:asia-northeast1:<db-name>


BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

配置/数据库.php

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', <instance-ip>),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', <db-name>),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', *********),
            'unix_socket' => env('DB_SOCKET', '/cloudsql/<project-id>:asia-northeast1:<db-name>'),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

我有另一个 cakephp 2.0 项目,在本地运行没有问题。

提前致谢

【问题讨论】:

    标签: laravel-5 google-cloud-platform


    【解决方案1】:

    在不知道您实际遇到什么错误的情况下,您很难知道为什么它无法连接。如果您可以发布您遇到的实际错误,这可能会告诉我们连接失败的原因。

    话虽如此,您可能希望改用Cloud SQL proxy 进行连接。有一个 quickstart 可用,只需不到 5 分钟即可设置连接以进行本地测试。

    【讨论】:

      【解决方案2】:

      从 Compute Engine 连接时,您不需要 DB_SOCKET。我在 laravel 的 .env 中使用以下 DB 凭据成功连接。

      DB_CONNECTION=mysql
      DB_HOST=<Mysql instance IP from Google SQL mentioned under "Connect to this instance">
      DB_PORT=3306
      DB_DATABASE=db_name
      DB_USERNAME=db_user
      DB_PASSWORD="db_user_pass"
      

      【讨论】:

        猜你喜欢
        • 2019-03-23
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        • 2020-03-18
        • 2021-10-05
        相关资源
        最近更新 更多