Я пытаюсь научиться использовать SQL в PHP, но у меня проблема с подключением к моей базе данных.
База данных почти наверняка работает с удаленным доступом в некоторой степени. Я временно отключил iptables (я знаю, плохо, плохо, плохо!), Так что нет никакого брандмауэра, блокирующего доступ. Пользователь MySQL, который я использую, настроен на возможность подключения с любого IP. Сервер SQL правильно прослушивает все соединения и работает на выделенном сервере Linux.
[root@1742CC-XEON ~]# netstat -lpnut | grep mysql
tcp 0 0 0.0.0.0:3315 0.0.0.0:* LISTEN 3915/mysqld
Я также использовал те же учетные данные для успешного удаленного подключения к моей базе данных на Java, например:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://__ip__:_port_/_dbname_", "username", "password");
System.out.println("Connection established.");
Это прекрасно работает, и я могу успешно выполнять запросы и т. Д. Так как в настоящий момент я отключил iptables, это соединение прекрасно работает везде, где есть Java и коннектор Java SQL.
Теперь я пытаюсь подключиться к той же базе данных в PHP:
$db = mysqli_connect($sql_host, $sql_user, $sql_pass, $sql_db, $sql_port);
И это соединение завершается со следующей ошибкой:
Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on 'xx.xx.xx.ip' (111)
Обратите внимание, что $ sql_user, $ sql_pass, $ sql_host и т. Д. Совпадают с учетными данными, используемыми в соединении Java, поэтому не должно быть никаких проблем с тем, что пользователь не может получить доступ к серверу с нового IP, поскольку этому пользователю предоставлен доступ к%, и я убедился, что он действительно может получить доступ к серверу SQL с нескольких IP-адресов, явно не разрешенных в таблице users. Я также пробовал разных пользователей, включая root, и все выдают одинаковую ошибку соединения.
Я провел несколько часов, осматриваясь, но, честно говоря, я не могу найти ничего, что кажется правильным ответом, был бы очень признателен за любую помощь!
Возможно ли, что это вызвано моим веб-хостингом? Я пробовал этот скрипт на хосте HostGator, а также на хостинге whois.com, и оба выдают ту же ошибку. Могут ли они препятствовать подключению PHP-сценария к удаленной базе данных?
Вы пробовали подключиться к серверу по телефону 3315 с вашего веб-хостинга?
Других решений пока нет …