Миграция с Oracle на MySql - PullRequest
1 голос
/ 15 мая 2011

Я хочу перейти с оракула на MySql. Я использую MySql Migration tools 5.0. В мастере миграции что-то пошло не так.

Error while establishing connection

Сообщение об ошибке

Connecting to source database and retrieve schemata names.
Initializing JDBC driver ... 
Driver class Oracle Thin JDBC Driver using Service
Opening connection ... 
Connection jdbc:oracle:thin:system/**********@//127.0.0.1:1521/OracleServiceXE
The list of schema names could not be retrieved (error: 0).
ReverseEngineeringOracle.getSchemata :Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
The Connection descriptor used by the client was:
//127.0.0.1:1521/OracleServiceXE

Details: 
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:280)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:328)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:361)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:595)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
com.mysql.grt.modules.ReverseEngineeringGeneric.establishConnection(ReverseEngineeringGeneric.java:141)
com.mysql.grt.modules.ReverseEngineeringOracle.getSchemata(ReverseEngineeringOracle.java:43)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.mysql.grt.Grt.callModuleFunction(Unknown Source)

Оба сервера SQL работают на локальном хосте.

Как я могу решить эти ошибки?

Ответы [ 2 ]

2 голосов
/ 15 мая 2011

Вы можете добавить имя используемой службы в базу данных Oracle или изменить введенное значение «OracleServiceXE» на правильное значение «XE». Введенное значение очень похоже на имя службы Windows по умолчанию и может быть перепутано с именем службы базы данных Oracle.

Чтобы изменить имя службы текущего экземпляра на OracleServiceXE:

alter system set service_name = 'OracleServiceXE';

lsnrctl services

также должен показывать имя службы после защиты, если только экземпляр базы данных не находится в состоянии с ограничениями, в этом случае соединение с именем службы не будет установлено.

0 голосов
/ 15 мая 2011

Мне кажется, что ваш URL-адрес соединения jdbc для Oracle неверен.Обычно это выглядит примерно так:

jdbc:oracle:thin:@localhost:1521:xe

Что произойдет, если вы удалите двойную косую черту // и замените косую черту / между 1521/OracleServiceXE двоеточием :?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...