【问题标题】:Connection to remote db fails : Laravel application连接到远程数据库失败:Laravel 应用程序
【发布时间】:2018-01-02 17:28:41
【问题描述】:

当我在浏览器中浏览到http://192.168.1.12/phpmyadmin 时,我能够登录并查看数据库。但是当我运行php artisan migrate 命令时, 我收到此错误:

[照亮\数据库\查询异常]
SQLSTATE[HY000] [2002] 连接超时(SQL: select * from 信息 _schema.tables 其中 table_schema = root 和 table_name = 迁移)

[PDOException] SQLSTATE[HY000] [2002] 连接超时

同时迁移到本地数据库正在工作。

【问题讨论】:

  • 您确定.env 文件中的数据库设置正确吗?我会先检查这些,确保您指向数据库的正确 IP,等等。
  • 数据库设置正确。我正在尝试连接到远程数据库(ip-192.168.1.12)
  • 而且端口号正确?如果您要连接到远程实例,您确定它已配置为接受来自您尝试连接的机器的连接吗?
  • 你能指定所有需要的配置吗?
  • 你运行的是什么操作系统?我假设您也在使用 MySQL,对吗?

标签: php mysql laravel laravel-5.4 database-migration


【解决方案1】:

好的,根据您的回答,我可以看到您正在尝试连接到远程数据库,PHPMyAdmin 安装在您要连接的机器上,但您的 Laravel 应用程序没有。

您需要编辑 my.cnf(或 my.ini,如果您在 Windows 上)并将 MySQL 绑定到 IP 地址(192.168.1.12)。您还需要重新启动 MySQL 并确保您用于从 Laravel 应用程序连接的 MySQL 用户具有权限(见下文)。

GRANT ALL PRIVILEGES ON database.* TO user@host IDENTIFIED BY 'somepassword';

您需要按照以下方式刷新权限...

FLUSH PRIVILEGES;

如果您使用 DHCP,您可以在授权的主机部分使用通配符。一个完整的例子如下..

GRANT ALL PRIVILEGES ON mydatabase.* TO myuser@% IDENTIFIED BY 'secretpassword';

【讨论】:

  • 如果您已完成上述所有步骤,请确保端口已打开。
【解决方案2】:

远程服务器上的 Nginx 端口冲突。也不读取 .env 文件。

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    相关资源
    最近更新 更多