Соединение Oracle с unixODBC: TNS: сетевое имя службы указано неверно

Я пытаюсь подключиться из Ubuntu в Oracle в Windows Server. Я установил unixODBC и драйвер Oracle для Ubuntu. Когда я пытаюсь подключиться с помощью isql, выдает следующую ошибку:

user@user:~$ isql -v oracle-jono username password
[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12545: Connect failed because target host or object does not exist
[ISQL]ERROR: Could not SQLConnect

И когда я запускаю его с sudo, я получаю другую ошибку:

[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified

Я пробовал много комбинаций переменных окружения без успеха (ORACLE_HOME, ORACLE_SID, TNS_ADMIN, TWO_TASK). Это мой первый раз, когда я что-то делаю с Oracle, так что практически ничего об этом не знаю. Я также пытался изменить файлы odbc.ini и tnsnames.ora.

Мой odbc.ini для этого соединения с Oracle:

[oracle-jono]
Description = ...
Driver      = OracleDriver
Server      = 111.222.111.222
User        = ...
Password    = ...
Port        = 1521
Database    = mydatabase

Мои tnsnames.ora:

Data Source=
    (DESCRIPTION=
        (ADDRESS_LIST=
            (ADDRESS=
                (PROTOCOL=TCP)
                (HOST=111.222.111.222)
                (PORT=1521)
            )
        )
        (CONNECT_DATA=
            (SERVER=DEDICATED)
            (SERVICE_NAME=mydatabase)
        )
);User Id=...;Password=...;

Что-то явно не так? Что я должен поместить в переменные среды? Нужно ли что-то делать в Windows Server, где происходит выход из базы данных Oracle (например, слушатели Oracle)?

1 ответ

Решение

Я перепробовал много вещей и не уверен, какой из них работал, но я предполагаю, что ServerName в odbc.ini исправил эту ошибку:

[oracle-jono]
Description = ...
...same as above...
ServerName  = //111.222.111.222:1521/mydatabase
Другие вопросы по тегам