Не удалось подключиться к удаленному серверу базы данных MySQL
Я пытаюсь подключиться 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 ответа
Наконец я решил эту проблему, выполнив несколько шагов:
Шаг 1 (Редактировать конфигурационный файл mysql)
/etc/mysql/mysql.conf.d/mysqld.cnf
Найти и изменить ниже строки
bind-address = 127.0.0.1
К
bind-адрес = 0.0.0.0
Шаг 2 (Предоставление разрешения на доступ к базе данных для пользователя)
CREATE USER 'remote_db_user' @ '%' ИДЕНТИФИЦИРОВАНО 'my_password';
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *.* TO 'remote_db_user'@'%' С GRANT OPTION;
Шаг 3 (Перезапустите Apache)
перезапуск службы sudo apache2
Шаг 4 (Перезапустите mysql)
sudo service mysql restart
И теперь я могу подключиться к удаленной базе данных, используяCakePHP 3
Пожалуйста, проверьте правила брандмауэра. например, если у вас запущен порт MySQL 3306, проверьте, открыт он или нет. и проверьте, что это правило также разрешено.
ufw разрешить mysql