mysql - 从 Oracle 迁移到 MySql

标签 mysql oracle database-migration

我想从 oracle 迁移到 MySql。我正在使用 MySql 迁移工具 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 服务器都在本地主机上运行。

我该如何解决这些错误?

最佳答案

您可以将使用的服务名称添加到oracle数据库中,或者将输入的值'OracleServiceXE'修改为正确的值'XE'。输入的值看起来很像默认的 Windows 服务名称,可能会与 Oracle 数据库服务名称混淆。

将当前实例服务名称更改为 OracleServiceXE:

alter system set service_name = 'OracleServiceXE';

lsnrctl 服务

还应在 wards 后显示服务名称,除非数据库实例处于受限状态,在这种情况下使用服务名称的连接将失败。

关于mysql - 从 Oracle 迁移到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009995/

相关文章:

mysql - Mysql版本5.6.11中的存储过程

oracle - Oracle是否支持全文搜索?

postgresql - 迁移发生后,Sequelize 模型定义文件会发生什么变化?

mysql - 在 MySQL 中插入唯一行的最便宜的方法?

mysql - 使用本地 MySQL 数据库保护 Web 服务器

java.sql.SQLException : Exhausted Resultset

migration - FlywayDB 忽略迁移中的子文件夹

heroku - 尝试在 Heroku 上运行迁移时出现 Sequelize 错误

mysql - 具有大量 LEFT JOINS 的 SQL 查询

Oracle - 为什么我应该使用包而不是独立的过程或函数