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.