Error: DPI-1047 Oracle Database Connection Error
Error: DPI-1047 Oracle Database Connection Error
我正在尝试将 oracle 数据库与 node-oracledb 连接,但出现此错误。
Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 0x0001): tried: 'libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file), '/Users/onuryuksekkaya/Documents/done/getwebee-pms/.webpack/service/libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file)". See https://oracle.github.io/odpi/doc/installation.html#macos for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have the arm64 Oracle Instant Client Basic or Basic Light package in ~/lib or /usr/local/lib
They can be downloaded from http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html
是否有快速解决方案?
我正在使用 node 14.18.1 和 oracle 4.2.0 以及 m1 macbook pro
我是这样解决这个问题的:
首先,您必须从源代码安装 node-oracledb。
它必须是这样的(这取决于你的oracledb版本)
"oracledb": "https://github.com/oracle/node-oracledb/releases/download/v5.3.0/oracledb-src-5.3.0.tgz",
那么您必须从这里下载 x86 oracle instantclient 基本包 (ZIP):https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
然后您必须将您的节点版本从 arm
更改为 x86。
您可以使用此命令在 zsh 终端中更改它
arch -x86_64 zsh
(您必须安装节点 x64 版本的节点模块)
如果您想确保您的节点版本是 x64,您可以在终端上执行这些步骤
node
console.log(process.arch)
输出将是你的拱门。它必须是 x64
当您使用这些命令时,您将安装 oracle 即时客户端
rm /usr/local/lib/libclntsh.dylib
ln -s ~/Downloads/instantclient_19_8/libclntsh.dylib /usr/local/lib
当您尝试 运行 您的项目时,输出将是带有文档名称的许可错误。您必须使用文本编辑器逐个打开这些文档。当您打开所有这些文档时,您可以运行 自由地进行您的项目。
我正在尝试将 oracle 数据库与 node-oracledb 连接,但出现此错误。
Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 0x0001): tried: 'libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file), '/Users/onuryuksekkaya/Documents/done/getwebee-pms/.webpack/service/libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file)". See https://oracle.github.io/odpi/doc/installation.html#macos for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have the arm64 Oracle Instant Client Basic or Basic Light package in ~/lib or /usr/local/lib
They can be downloaded from http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html
是否有快速解决方案?
我正在使用 node 14.18.1 和 oracle 4.2.0 以及 m1 macbook pro
我是这样解决这个问题的:
首先,您必须从源代码安装 node-oracledb。 它必须是这样的(这取决于你的oracledb版本)
"oracledb": "https://github.com/oracle/node-oracledb/releases/download/v5.3.0/oracledb-src-5.3.0.tgz",
那么您必须从这里下载 x86 oracle instantclient 基本包 (ZIP):https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
然后您必须将您的节点版本从 arm
更改为 x86。
您可以使用此命令在 zsh 终端中更改它
arch -x86_64 zsh
(您必须安装节点 x64 版本的节点模块)
如果您想确保您的节点版本是 x64,您可以在终端上执行这些步骤
node
console.log(process.arch)
输出将是你的拱门。它必须是 x64
当您使用这些命令时,您将安装 oracle 即时客户端
rm /usr/local/lib/libclntsh.dylib
ln -s ~/Downloads/instantclient_19_8/libclntsh.dylib /usr/local/lib
当您尝试 运行 您的项目时,输出将是带有文档名称的许可错误。您必须使用文本编辑器逐个打开这些文档。当您打开所有这些文档时,您可以运行 自由地进行您的项目。