我正在尝试从本地计算机连接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
地址
如何解决此问题?
答案 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