【问题标题】:Laravel connecting to remote mysql databaseLaravel 连接远程 mysql 数据库
【发布时间】:2018-11-06 10:22:18
【问题描述】:

我正在尝试在我的 Laravel(5.6 版)应用程序中连接到我的远程 mysql 数据库(infinityfree.net)。这是我在 database.php 文件中的配置:

'mysql' => [
        'driver' => 'mysql',
        'host' => 'sql201.epizy.com',
        'database' => 'epiz_22148680_LaravelHospital',
        'username' => 'epiz_22148680',
        'password' => 'Vxp7****R1k6',
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
    ],

我还更改了 .env 文件:

DB_CONNECTION=mysql
DB_HOST=sql201.epizy.com
DB_PORT=3306
DB_DATABASE=epiz_22148680_LaravelHospital
DB_USERNAME=epiz_22148680
DB_PASSWORD=Vxp7****R1k6

但是,当我尝试连接到我的数据库时,我收到了这个错误:

PDOException::("SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在 p 后没有正确响应 一段时间或建立的连接失败,因为连接的主机没有响应。

我见过this postthis,但没有得到答复。

【问题讨论】:

  • 这里可能有同样的问题:stackoverflow.com/questions/29849852/…
  • 我确定我的配置是正确的。我的意思是,数据库名称、主机名等。
  • 首先,你永远不会在配置文件中声明用户和密码,使用env('KEY', 'default value if key not found'),然后.env文件将被使用。其次,从您发布的内容来看,似乎没有从远程服务器打开端口。尝试使用telnet IP PORT从终端的DB软件连接您的PC,如果该telnet连接,则它已打开,如果没有,那么......
  • 我尝试了两个不同的托管网站,但我得到了同样的错误。我也试过telnet。它没有连接
  • 它认为您无法在demo 模式下连接到远程MySQL。检查您的CPanel中的Remote MySQL部分

标签: php mysql laravel shared-hosting


【解决方案1】:

看看php-mysql的库安装了吗?

查看 php -m,查看模块。

只需设置 .env 就足以连接 db

【讨论】:

    【解决方案2】:

    出于安全原因,默认情况下禁用对 MySQL 数据库服务器的远程访问。 MySQL 实例仅配置为侦听本地连接。这是 MySQL 的默认设置,但它不适用于远程数据库设置,因为 MySQL 必须能够侦听可以访问服务器的外部 IP 地址。

    要启用此功能,请打开您的 mysqld.cnf 文件:

    查找以下行,

    bind-address            = 127.0.0.1
    

    为了排除故障,将其更改为 0.0.0.0。

    重启 MySQL 并再次检查连接。

    如果它的工作将 0.0.0.0 更改为 yourWEBSERVERIPaddress

    如果您有任何问题,这里是完整的教程。

    https://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

    【讨论】:

    • 当您设置凭据时,它们也不能设置为 localhost。
    猜你喜欢
    • 2020-01-10
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2020-05-05
    • 2015-01-29
    相关资源
    最近更新 更多