Соединение 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