我已经在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服务器
我错过了什么吗? 任何指导将不胜感激。
答案 0 :(得分:1)
“ mydbidentifier”是RDS控制台中显示的数据库标识符。怎么找不到呢?
默认情况下, RDS不会为您创建数据库。它只是创建一个数据库实例。要创建数据库,您需要为此明确加入:
如果尚未执行此操作,则在使用数据库客户端连接到数据库实例后,必须使用常规的 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