У меня нет файла tnsnames.ora, как в дублирующемся вопросе. Я просто пытаюсь подключиться, не используя его. Мой подход заключается в том, чтобы полагаться на прямое соединение с Oracle с использованием расширения oci8. Также в дублирующем вопросе у этого человека не было кода PHP, я использую код PHP, и конфигурация немного отличалась от моей и его соединение работало на удаленном компьютере, пока я использовал мой компьютер. Я попытался подключиться к Oracle через telnet в cmd, но не было никаких признаков успешного соединения. Казалось, что сервер не отвечает или недоступен.
Я пытался подключиться с помощью этого кода:
Код: Выделить всё
$host = "iacademy2.oracle.com";
$port = "1521";
$service_name = "orclpdb";
$username = "username";
$password = "password";
$dsn = "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = $service_name)
)
)";
$conn = oci_connect($username, $password, $dsn);
if (!$conn) {
$e = oci_error();
echo "Connection error: " . $e['message'];
exit;
}
echo "Successfully connected to Oracle!";
ORA-12170: TNS: истекло время ожидания соединения
ORA-12541: TNS: нет прослушивателя< /p>
Как я могу решить эту проблему с подключением к базе данных Oracle из PHP, учитывая, что расширение oci8 уже установлено и работает правильно, и я могу получить доступ к базе данных Oracle в браузер? У вас есть идеи? Я был бы очень признателен. Мне это нужно для моего факультета.
Кроме того, я могу получить доступ к базе данных Oracle через браузер (через https://iacademy2.oracle.com/ords/) , поэтому я знаю, что экземпляр Oracle запущен и работает. Однако у меня возникли проблемы с подключением к нему через PHP.
Я пробовал изменить значение HOST в строке подключения на разные адреса, но это не решило проблему. Соединение по-прежнему не удается. Я использовал 192.168.0.1 в качестве хоста, но он говорит:
Предупреждение: oci_connect(): ORA-12541: TNS: нет прослушивателя в D:\frontend\pages \test.php в строке 16
Ошибка соединения: ORA-12541: TNS: нет прослушивателя.
У меня также включен XAMPP. Еще один момент: из cmd я пытался использовать C:\\Users\\Lenovo\>telnet iacademy2.oracle.com 1521
Подключение к iacademy2.oracle.com... Не удалось открыть соединение с хостом на порту 1521: Ошибка подключения
Я также использовал порт 1522, но это не помогло работа.
**Причина, по которой я настаиваю на этом вопросе, заключается в том, что для моего бакалавра мне нужно создать приложение — веб-сайт. Однако я не могу продолжить разработку серверной части, поскольку моя база данных создана в Oracle, а это значит, что все таблицы там уже настроены. Хотя я мог бы воссоздать базу данных в phpMyAdmin, я предпочитаю использовать Oracle, потому что мне больше нравится его интерфейс, и я уже создал таблицы, и да, это немного расстраивает, потому что я не могу продолжить обучение на степень бакалавра из-за этой ошибки.
Прошу прощения, если слишком утомил администраторов и пользователей сайта.**
Подробнее здесь: https://stackoverflow.com/questions/793 ... ct-timeout