在EC2 AWS上使用Laravel 4 php artisan migrate命令进行PDO异常

时间:2014-03-20 04:22:08

标签: mysql laravel amazon-ec2 laravel-4

我在AWS上的EC2上有一个ubuntu 12.04实例,并在那里上传了一个Laravel 4项目。我正在尝试运行php artisan migrate,但由于某种原因我无法通过命令连接到我的mysql服务器。我能够使用SSH(使用弹性IP作为主机)进入SQL Pro上的MySql数据库。我还使用弹性IP SSH到服务器。

运行php artisan migrate时出现此错误:

[PDOException]                                                               
  SQLSTATE[HY000] [2003] Can't connect to MySQL server on '**.***.***.**' (11  
  1)                                                                           



migrate [--bench[="..."]] [--database[="..."]] [--path[="..."]] [--package[="..."]] [--pretend] [--seed]

其中开头代表我的“弹性IP”,这是我用来连接SQL Pro中的mySQL的主机。

在我的database.php配置文件中,我正在使用:

进行连接
'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '*ELASTIC IP*',
            'database'  => 'dbname',
            'username'  => '****',
            'password'  => '*******',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

我在这台服务器上安装了php5,apache2,mcrypt和php5-mysql。我该如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:0)

听起来你不一定允许你的'用户'进入数据库。

在MySQL中,“用户”是'username'@'hostname'的组合。可能是您只允许username用于localhost127.0.0.1的特定主机。要查看是否存在此问题,您可以使用主机名通配符%创建用户。此外,通过允许该用户访问所有数据库。从mysql>这样的命令行:

CREATE USER '<username>'@'%' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%';