我在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。我该如何解决这个问题?谢谢。
答案 0 :(得分:0)
听起来你不一定允许你的'用户'进入数据库。
在MySQL中,“用户”是'username'@'hostname'
的组合。可能是您只允许username
用于localhost
或127.0.0.1
的特定主机。要查看是否存在此问题,您可以使用主机名通配符%
创建用户。此外,通过允许该用户访问所有数据库。从mysql>
这样的命令行:
CREATE USER '<username>'@'%' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%';