MySQL远程数据库服务器连接失败

时间:2016-10-26 04:03:28

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

我正在尝试从本地计算机连接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地址
  • 没有名称服务器   

如何解决此问题?

2 个答案:

答案 0 :(得分:2)

最后,我通过以下步骤解决了这个问题 -

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

  

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

查找并更改以下行

  

bind-address = 127.0.0.1

  

bind-address = 0.0.0.0

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

  

创建用户'remote_db_user'@'%'通过'my_password'标识;

     

授予所有特权*。*''remote_db_user'@'%'WITH GRANT OPTION;

第3步(重启Apache)

  

sudo service apache2 restart

第4步(重启mysql)

  

sudo service mysql restart

现在,我可以使用CakePHP 3

连接远程数据库

答案 1 :(得分:0)

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

<块引用>

ufw 允许 mysql