【问题标题】:Cannot migrate Database to AWS elastic Beanstalk无法将数据库迁移到 AWS 弹性 Beanstalk
【发布时间】:2020-11-04 13:07:03
【问题描述】:

我在 AWS 中托管了一个站点。我为弹性 beantalk 创建了一个 RDS 数据库实例。 在我的 laravel 应用程序的 config/database.php 文件中,我已将数据库连接配置为:

'mysql' => [
         'driver' => 'mysql',
         'host' => 'mydbidentefier.cdh7pykyg7in.ap-south-1.rds.amazonaws.com',
         'port' => 3306,
         'database' => 'mydbidentefier',
         'username' => 'admin',
         'password' => 'mypw',
         'unix_socket' => env('DB_SOCKET', ''),
         'charset' => 'utf8mb4',
         'collation' => 'utf8mb4_unicode_ci',
         'prefix' => '',
         'strict' => true,
         'engine' => null,
     ],

现在,当我尝试通过 SSH 进入 EC2 实例来运行 php artisan migrate 时,我收到此错误:

SQLSTATE[HY000] [1049] 未知数据库 'mydbindentifier' (SQL: select * from projects)

“mydbidentifier”是显示在 RDS 控制台中的数据库标识符。怎么会找不到呢。

还有一件事:我应该不能通过 SSH 连接到 EC2 实例从命令行运行 mysql 吗?当我通过 SSH 进入 EC2 命令行终端尝试 mysql -u root -p 时。我收到另一个错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我错过了什么吗? 任何指导将不胜感激。

【问题讨论】:

    标签: mysql amazon-web-services amazon-elastic-beanstalk amazon-rds


    【解决方案1】:

    “mydbidentifier”是显示在 RDS 控制台中的数据库标识符。怎么会找不到呢。

    默认情况下RDS 不会为您创建数据库。它只是创建一个数据库实例。要创建数据库,您需要明确选择加入:

    如果您还没有这样做,则必须在使用数据库客户端连接到您的数据库实例后,使用常规的SQL命令创建数据库,例如CREATE DATABASE <name>;

    当我通过 SSH 连接到 EC2 命令行终端尝试 mysql -u root -p 时。我收到另一个错误

    您必须明确指定主机,如docs 中所示,例如

    mysql -u root -p  -h mydbidentefier.cdh7pykyg7in.ap-south-1.rds.amazonaws.com
    

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 2021-12-17
      • 2014-10-16
      • 2019-08-24
      • 2021-08-08
      • 2019-06-09
      • 2023-02-01
      • 2017-03-24
      • 2021-05-21
      相关资源
      最近更新 更多