无法将数据库迁移到AWS Elastic Beanstalk

时间:2020-07-15 05:13:10

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

我已经在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:从projects中选择*)

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

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

ERROR 2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'(2)连接到本地MySQL服务器

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

1 个答案:

答案 0 :(得分:1)

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

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

enter image description here

如果尚未执行此操作,则在使用数据库客户端连接到数据库实例后,必须使用常规的 SQL命令来创建数据库,例如CREATE DATABASE <name>;

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

您必须明确{strong>指定主机,如docs所示,例如

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