From:       To:      
Home > Documentation > MySQL to Oracle

Troubleshooting MySQL to Oracle Converter

While working with MySQL to Oracle converter you may encounter unexpected behavior or result. Use the following information to solve some common problems and get the result you want. This summary is organized as a list of problem-resolution pairs. Each problem description starts with "P:" and each resolution - with "R:".

P: Error "The program does not support authentication protocol requested by server..."
R: Some versions of MySQL use the authentication protocol based on a password hashing algorithm that is not supported by MySQL to Oracle converter.

For MySQL 8.0.x login to the server with administrator and run the following statement:

ALTER USER 'username'@'mysqlhost' IDENTIFIED WITH mysql_native_password BY 'user-password';

For MySQL 4.1.0 use OLD_PASSWORD function to make the certain account compatible with MySQL to Oracle converter. Login to MySQL server with administrator privileges and run the following queries:

    mysql> USE mysql;
    mysql> UPDATE user SET Password = OLD_PASSWORD('some-password')
        -> WHERE Host = 'some-host' AND User = 'some-user';
    mysql> FLUSH PRIVILEGES;

Of course, all text in quotes must be replaced by the actual values.

P: Error "There are orphaned records that prevent from creating foreign key..."
R: Foreign key cannot be created because there are one or more child records that do not have a matching record in the parent table. You have to remove these records in order to create the foreign key. The following query will determine if the entries in the child table have invalid foreign key references:

     select <column(s)> from <child_table>
     minus
     select <column(s)> from <parent_table>

where <child_table> - table with the foreign key, <parent_table> - table with primary key referenced by the foreign key, <child_column(s)> - one ore more columns included in foreign key.

P: Error "Duplicate field values being used for an unique index were found..."
R: This error means that an attempt has been made to insert a record with a duplicate unique key. When migrating MySQL data into a new Oracle table, you can either edit source database in order to resolve the conflict manually or restart the program with "Skip converting indexes" checkbox selected. When appending MySQL data to an existing Oracle table, you should remove the conflicting unique index in the destination Oracle table.

P: Error "ORA-12705: Cannot access NLS data..."
R: The program failed to find specification of database language. You have to specify database language using "NLS_LANG" environmental variable. For example:

    set NLS_LANG=AMERICAN_AMERICA.UTF8

It the error persists, please read the following two articles giving detailed instructions how to diagnose and fix it:

http://www.dba-oracle.com/t_ora_12705_resolution.htm
http://www.dba-oracle.com/t_ora_12705_error.htm

P: Error "ORA-06413: Connection not open"
R: If you run MySQL to Oracle converter on 64-bit Windows, the most probable reason of the error is that executable module sql2ora.exe has been placed into folder "...\Program Files (x86)\..." while Oracle does not allow bracket symbols in client application. Please copy all contents of product's installation folder into another location that does not contain brackets in the path and run MySQL to Oracle converter from there. If the error persists, please contact our support department at service@convert-in.com

P: The application failed to start because OCI.dll was not found.
R: OCI.DLL is supplied by the Oracle Corporation and is a part of the Oracle Version 7.3.4 (or later) client software installation. Check that you have Oracle client and networking components installed on the machine where you run our software from. Also please make sure that the path to Oracle components folder is in $PATH system variable.

P: I cannot uninstall MySQL to Oracle converter.
R: If you need to remove MySQL to Oracle converter from your computer, you can use "Add or Remove Programs" option in the Windows Control Panel. If this option is not available for some reason, you can call uninstall procedure running the following command line from the installation folder:

UNWISE.EXE sql2ora.log

P: All table names are enclosed in quotes in the destination Oracle database.
R: By default MySQL to Oracle converter processes table and column names in case sensitive fashion. Oracle requires you to enclose those names in quotes in SQL-queries. You can avoid it by selecting 'Make names uppercase' checkbox on 'Step 3 of 5' wizard page.

P: Error "ORA-12500: the listener could not start a server process..."
R: The process of starting up a dedicated server process failed. The executable could not be found or the environment may be set up incorrectly. Verify that the ORACLE Server executable is present and has execute permissions enabled. Ensure that the ORACLE environment is specified correctly in LISTENER.ORA. If Oracle server is running under MS Windows NT/2000/XP, check that service 'OracleService<data source name>' (where <data source name> is an actual name of destination Oracle data source) is running on the database server machine.

P: Error "ORA-12505: the program could not resolve service name..."
R: The service name specified in the connection was not found in the listener's tables. Check to make sure that the service name is correct. The services that are currently registered with the listener can be obtained by typing: LSNRCTL SERVICES <listener-name>

P: Error "ORA-12541: no listener..."
R: The connection request could not be completed because the listener is not running on the database server. Start the listener on the destination machine using 'lsnrctl start' command.

P: Error "ORA-12545: connect failed because target host or object does not exist..."
R: Oracle suggest ensuring that the ADDRESS parameters (in the TNSNAMES.ORA file) have been entered correctly; the most likely incorrect parameter is the node name. Ensure that the executable for the server exists (perhaps "oracle" is missing.) If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the host name to a numeric IP address and try again. It could be a network connectivity problem. Try pinging the host. This error has been observed on a laptop when the database was local, TCP/IP protocol used but the network card had been removed.

P: Error "Access denied for user: <user-name>"
R: You will not be able to connect to MySQL server until you have the appropriate permissions. Ask your MySQL server administrator give you sufficient permissions to read the source database on MySQL server.

P: Program freezes on the second dialog while connecting to remote MySQL server.
R: MySQL server cannot resolve network names. Close the program, restart MySQL daemon with "--skip-name-resolve" option and try again.

P: After entering all Oracle connection settings properly I've got the following error: "Oracle data source does not exist. Check to verify correct name was given.".
R: It means that the program failed to connect to the destination server using the selected method. To bypass this error you can try the following trick. Leave both "Server" and "Port" fields empty and enter in "Database" field the entire connection string as follows:

(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=IP address of Oracle server)(PORT=1521)))

Of course, you need to replace "IP address of Oracle server" in the sample above with the actual value of IP address.

If you came across some other kind of problem while using MySQL to Oracle converter, please contact our support department.