我在 AWS 的 EC2 上有一个 ubuntu 12.04 实例,并在那里上传了一个 Laravel 4 项目。我正在尝试运行 php artisan migrate,但由于某种原因我无法通过命令连接到我的 mysql 服务器。我可以使用 SSH(使用弹性 IP 作为主机)进入 SQL Pro 上的 MySql DB。我还使用弹性 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。我该如何解决这个问题?谢谢。
最佳答案
听起来您不一定允许您的“用户”进入数据库。
在 MySQL 中,“用户”是“用户名”@“主机名”
的组合。可能是您只是允许您的用户名
用于特定主机,该主机可能是localhost
或127.0.0.1
。要查看这是否是问题所在,您可以使用主机名通配符 %
创建一个用户。另外,允许该用户访问所有数据库。从 mysql>
命令行,如下所示:
CREATE USER '<username>'@'%' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%';
关于mysql - EC2 AWS 上的 Laravel 4 php artisan migrate 命令出现 PDO 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22523449/