【问题标题】:MySQL remote database server connect failedMySQL远程数据库服务器连接失败
【发布时间】:2017-03-08 07:17:42
【问题描述】:

我正在尝试从我的本地计算机连接Cakephp 3.x 远程数据库服务器。

但显示以下错误

错误:SQLSTATE[HY000] [2002] 没有到主机的路由

我在app.php 中的本地数据库配置如下 -

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '192.168.1.19',
        /**
         * CakePHP will use the default DB port based on the driver selected
         * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
         * the following line and set the port accordingly
         */
        'port' => '3306',
        'username' => 'remote_db_user',
        'password' => 'my_password',
        'database' => '********',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
     ],
     /*Other configs*/
]

关于远程服务器:

  • ping 192.168.1.19 我的电脑上的这个 IP 没问题
  • IP 地址没有名称服务器

我该如何解决这个问题?

【问题讨论】:

  • 用户名、密码和数据库呢?他们都好吗?
  • 我认为在主机中你应该只提供IP,即192.168.1.19,而不是端口指定的协议(https)
  • 是的!所有凭据都可以。 @ManoharKhadka
  • 我也检查了没有'https 但没有发生任何事情@RohitAilani
  • 我修复了一些问题,并更新了问题。当前错误Error: SQLSTATE[HY000] [2002] No route to host@ManoharKhadka

标签: mysql cakephp-3.0 mysql-error-2002


【解决方案1】:

最后我按照一些步骤解决了这个问题-

第 1 步(编辑 mysql 配置文件)

/etc/mysql/mysql.conf.d/mysqld.cnf

查找并更改以下行

绑定地址 = 127.0.0.1

绑定地址 = 0.0.0.0

第 2 步(为用户授予数据库权限)

CREATE USER 'remote_db_user'@'%' IDENTIFIED BY 'my_password';

GRANT ALL PRIVILEGES ON *.* TO 'remote_db_user'@'%' WITH GRANT OPTION;

第 3 步(重启 Apache)

sudo 服务 apache2 重启

第 4 步(重启 mysql)

sudo 服务 mysql 重启

现在,我可以使用 CakePHP 3 连接远程数据库

【讨论】:

    【解决方案2】:

    请检查防火墙规则。例如,如果您的 MySQL 运行端口是 3306,请检查它是否打开。请检查此规则是否也允许。

    ufw 允许 mysql

    【讨论】:

      猜你喜欢
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多