无法使用CakePHP 3.8在GCP上运行迁移

vltsax25  于 2022-11-12  发布在  PHP
关注(0)|答案(1)|浏览(151)

我正在尝试在GCP“计算引擎”VM上设置我的CakePHP 3.8项目。
我已经将我的app.php设置为使用以下数据库配置:

'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'user',
'password' => 'password',
'database' => 'dbname',
'prefix' => '',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => false,
'flags' => [
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET @@SESSION.sql_mode='';",
    // uncomment below for use with Google Cloud SQL
    PDO::MYSQL_ATTR_SSL_KEY  => CONFIG.'ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT => CONFIG.'ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA   => CONFIG.'ssl/server-ca.pem',
    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
],
'cacheMetadata' => true,
'log' => false,

当我尝试执行移转时发生问题。网站在上述设定下运作正常,但是如果我执行

$> php bin/cake.php migrations migrate

我收到一系列错误消息,说它无法连接,用户@主机的访问被拒绝。
如果我加上

'ssl_key' => CONFIG .'ssl/client-key.pem',
'ssl_cert' => CONFIG . 'ssl/client-cert.pem',
'ssl_ca' => CONFIG . 'ssl/server-ca.pem',

我收到一个错误:
导致错误的原因:[PDO异常] PDO::__construct():在/var/www/ www.example.com的第79行中,对等证书CN=“gcpname:gcpserver”与预期的CN=“111.111.111.111”不匹配mydomain.com/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php

krugob8w

krugob8w1#

我 猜 这 是 因为 迁移 插件 仍然 没有 将 flags 或 * * 自 定义 mysql_attr_* 选项 * * 传递 到 Phinx 连接 配置 , 请 参见 此 问题 :


我 不 认为 有 很多 可以 做 的 , 除了 增加 对 标志/属性 选项 的 支持 , 或 直接 使用 Phinx ( 即 没有 迁移 插件 ) 。
我 已经 推出 了 一 个 PR , 它 将 添加 对 驱动 程序 特定 标志 的 支持 , 你 可能 想 尝试 一下 , 并 就 问题 或 PR 发表 评论 , 看看 它 是否 适合 你 ( 它 是 为 CakePHP 4.x ( Migrations 3.x ) , 我 会 将 它 后 移植 到 CakePHP 3.x ( Migrations 2.x ) , 以防 它 被 接受 ) :


相关问题