将Heroku Lumen App连接到Amazon RDS MySQL 5.7.19 [英] Connecting Heroku Lumen App to Amazon RDS MySQL 5.7.19

查看:94
本文介绍了将Heroku Lumen App连接到Amazon RDS MySQL 5.7.19的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已按照Heroku的建议为0.0.0.0/0授予了对Amazon RDS MySQL实例(5.7.19)的访问权限.这使连接成功工作.当我为mysql-user强制使用SSL(ALTER USER'user'@'%'需要SSL;)时,连接中断.我遵循了Heroku的这些说明.

I have granted access for the Amazon RDS MySQL instance (5.7.19) for 0.0.0.0/0 as suggested by Heroku. This makes the connection work successfully. When I force SSL for the mysql-user (ALTER USER 'user'@'%' REQUIRE SSL;) the connection breaks. I have followed these instructions from Heroku.

我的Heroku DATABASE_URL配置变量: mysql://用户名:密码@ AMAZONRDSMYSQLURL/DATABASE?sslca = config/amazon-rds-ca-cert.pem

My Heroku DATABASE_URL config variable: mysql://username:password@AMAZONRDSMYSQLURL/DATABASE?sslca=config/amazon-rds-ca-cert.pem

证书存储在/config/amazon-rds-ca-cert.pem

The certificate is stored under /config/amazon-rds-ca-cert.pem

从我的本地主机终端,我可以使用以下命令通过SSL连接到Amazon RDS实例(具有与上面相同的证书)(也可以在没有--ssl-mode = VERIFY_IDENTITY的情况下使用): mysql -h AMAZONRDSMYSQLURL --ssl-ca =/用户/文档/amazon-rds-ca-cert.pem --ssl-mode = VERIFY_IDENTITY -u用户名-p

From my localhost terminal I can connect via SSL to the Amazon RDS instance (with the same certificate from above) using this command (works also without --ssl-mode=VERIFY_IDENTITY): mysql -h AMAZONRDSMYSQLURL --ssl-ca=/Users/Documents/amazon-rds-ca-cert.pem --ssl-mode=VERIFY_IDENTITY -u USERNAME -p

我在Lumen中的数据库配置(/config/database.php):

<?php

$url = parse_url(getenv("DATABASE_URL"));
$host = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$database = substr($url["path"], 1);

return [

    'default' => 'mysql',

    'connections' => [

        'mysql' => [
            'driver' => 'mysql',
            'port' => '3306',
            'host'      => $host,
            'database'  => $database,
            'username'  => $username,
            'password'  => $password,
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

您知道这里出什么问题了吗?谢谢!

Any idea whats going wrong here? Thanks!

推荐答案

我终于使它适用于:

'connections' => [

'sqlite' => [
    'driver' => 'sqlite',
    'database' => env('DB_DATABASE', database_path('database.sqlite')),
    'prefix' => '',
],

'mysql' => [
    'driver' => 'mysql',
    'port' => '3306',
    'host'      => $host,
    'database'  => $database,
    'username'  => $username,
    'password'  => $password,
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
    'options'  => array(
        PDO::MYSQL_ATTR_SSL_CA => '../config/amazon-rds-ca-cert.pem'
    )
],

这篇关于将Heroku Lumen App连接到Amazon RDS MySQL 5.7.19的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆