我在AWS托管了一个站点。我已经为弹性Beanstalk创建了一个RDS DB实例。在我的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,
],
现在,当我尝试通过SSHing运行PHP artisan Migrate
到EC2实例时,我得到以下错误:
SQLState[HY000][1049]未知数据库“MydBindEntifier”(SQL:select*from项目
)
“mydbidentifier”是RDS控制台中显示的DB标识符。怎么可能找不到。
还有一件事:难道我不能通过SSHing到EC2实例从命令行运行mysql吗?当我通过SSHing到EC2命令行终端来尝试mysql-u root-p
时。我得到另一个错误:
错误2002(HY000):无法通过套接字“/var/lib/MySQL/MySQL.sock”(2)连接到本地MySQL服务器
我错过什么了吗?如有任何指导,将不胜感激。
“mydbidentifier”是RDS控制台中显示的DB标识符。怎么可能找不到。
默认情况下,RDS不会为您创建数据库。它只是创建一个DB实例。要创建DB,您需要显式地选择加入:
如果还没有这样做,则必须使用常规SQL命令来创建数据库,例如在使用db客户端连接到db实例之后使用create database
。
当我通过SSHing进入EC2命令行终端来尝试mysql-u root-p时。我又犯了一个错误
您必须明确指定如文档中所示的主机,例如。
mysql -u root -p -h mydbidentefier.cdh7pykyg7in.ap-south-1.rds.amazonaws.com