如何在Mac上安装Oracle Instant Client版本12.1.0.2(64位)(OS X 10.11.5)
我已经下载了12.1.0.2版(64位)版本并解压缩了该文件.
我现在在/ downloads/instantclient下有以下文件:
libclntsh.dylib.12.1
libclntshcore.dylib.12.1
libnnz12.dylib
libocci.dylib.12.1
libociei.dylib
libocijdbc12.dylib
libons.dylib
liboramysql12.dylib
ojdbc6.jar
ojdbc7.jar
uidrvci
xstreams.jar
adrci
BASIC_README
genezi
Run Code Online (Sandbox Code Playgroud)
我没有任何想法如何从这个到Instant Client的工作版本,所以我可以从CLI连接到数据库.Oracles网站上的说明似乎过于复杂.
我找到了一些详细说明安装方法的博客,但它们似乎都来自以前版本的Instant Client.出于绝望,我下载了以前版本的Instant Client,但似乎仍然缺少本教程中提到的文件.
有谁知道如何在我的Mac上获得Oracle Instant Client?
Oracle的指令指定设置DYLD_LIBRARY_PATH.这使我的应用程序依赖于随机用户的配置,并且设置起来非常麻烦.
如何避免设置任何环境变量?
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html
linux的相关说明:在Linux上安装Oracle Instantclient而不设置环境变量?
我有下一行未注释(在我的php.ini中):
extension=php_oracle.dll
extension=php_oci8.dll
Run Code Online (Sandbox Code Playgroud)
我下载了这个文件instantclient-basiclite-nt-11.2.0.2.0.zip并解压缩并将其放在驱动器D上...
我使用的是Windows XP
我像这样设置环境变量:
LD_LIBRARY_PATH C:\instantclient_11_2:$LD_LIBRARY_PATH
ORACLE_HOME C:\instantclient_11_2
Run Code Online (Sandbox Code Playgroud)
但是当我执行oci_connect()函数时,我看到了这个错误:
致命错误:在...中调用未定义的函数oci_connect()
我在erroeLog文件中发现了这个警告:
[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php\ext\php_oci8.dll' - 找不到指定的模块.在第0行的未知中
[29-Dec-2011 00:36:39] PHP警告:PHP启动:无法加载动态库'c:\ php\ext\php_oracle.dll' - 找不到指定的模块.
我们的 Oracle 10g 数据库最近升级到 11g。该数据库在 Windows Server 2003 X64 机器上运行。在访问具有 TIMESTAMP (6) WITH TIME ZONE 数据列的表的 .NET 应用程序的 SQL 查询中,我收到以下异常。
System.Data.OracleClient.OracleException:ORA-01805:日期/时间操作中可能出错
针对异常的建议操作是确保客户端和服务器的版本相同:
ORA-01805:日期/时间操作中可能出错原因:客户端和服务器上的时区文件不匹配。操作可能会导致基于本地时区文件的错误结果。行动:请确保客户端和服务器时区版本相同。
我运行了以下查询来检查相关数据库上的时区。我还没有找到有关如何为客户端设置时区(或更改时区文件)的信息。
SELECT dbtimezone FROM DUAL;
select * from v$timezone_file;
DBTIMEZONE
----------
+00:00
FILENAME VERSION
-------------------- ----------------------
timezlrg_14.dat 14
Run Code Online (Sandbox Code Playgroud)
我假设客户端指的是我安装的 Instant Client,版本 11_2?我正在通过System.Data.OracleClient.OracleConnection.NET Framework 提供的a 运行查询。UI 假设“时区版本”指的是时区文件版本。我没有看到即时客户端在哪里有时区文件。任何建议都表示赞赏。
Oracle的指令指定设置LD_LIBRARY_PATH.这使我的应用程序依赖于随机用户的配置,并且设置起来非常麻烦.
如何避免设置任何环境变量?
它与常规连接字符串有何不同?
我刚刚在笔记本电脑上安装了Oracle即时客户端,当我尝试通过C#中的ODBC连接时,我得到了这个.机器过去安装了9.2和10.2.
为什么会出现此错误?在我的连接字符串中,我可以告诉它忽略Oracle NLS设置吗?
我需要在ubuntu机器上安装PDO_OCI,没有我可以用apt-get安装的默认包.
有很多教程展示了如何做到这一点,但是当我遵循它们时,我遇到了与编译相关的问题(configure,make,...)
我在这做了什么:
我按照本教程安装了即时客户端
安装oci8
pecl install oci8
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误:找不到oci.h
安装PDO_OCI
mkdir -p /tmp/pear/download/
cd /tmp/pear/download/
pecl download pdo_oci
phpize
./configure –with-pdo-oci=instantclient,/usr,11.2
Run Code Online (Sandbox Code Playgroud)
错误:
找不到pdo_driver.h ...
请问您有任何在UBUNTU 12.04上完美运行的严肃教程吗?
我正在使用https://launchpad.net/~ondrej/+archive/ubuntu/php提供的最新PHP软件包.
当我构建并安装OCI8扩展时,一切看起来都是有序的,但是尽管在PHP-FPM配置中启用了扩展,但它的存在并没有反映在输出中phpinfo().
以下Gist详细介绍了我用于配置,构建和安装OCI8 PHP扩展的确切过程:
https://gist.github.com/cbj4074/fa761f60b6f8db431539d76ebfba828e
完全相同的流程和配置在Ubuntu 16.04 LTS上工作得非常好,所以看起来在Ubuntu 18.04 LTS上有一些根本的区别,无论是操作系统还是有问题的PHP包.
作为一个重要的(我怀疑与此问题相关)背景信息,在Ubuntu 18.04 LTS上,扩展无法在开箱即用的CLI环境中加载,错误如下:
PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20160303/oci8.so' - libmql1.so:无法打开共享对象文件:第0行的未知中没有此类文件或目录
我这样解决了这个问题:
# echo 'LD_LIBRARY_PATH="/opt/oracle/instantclient_12_2"' >> /etc/environment
Run Code Online (Sandbox Code Playgroud)
我认为也许添加LD_LIBRARY_PATH到PHP-FPM环境配置可能会解决那里的等效问题:
# echo "env['LD_LIBRARY_PATH'] = /opt/oracle/instantclient_12_2" >> /etc/php/7.2/fpm/pool.d/www.conf
# systemctl restart php7.2-fpm
Run Code Online (Sandbox Code Playgroud)
这确实导致LD_LIBRARY_PATH值,符合规定,要体现在两者Environment的部分phpinfo()(当通过PHP-FPM + NGINX呈现并从一个浏览器请求),并且PHP Variables部分,如$_SERVER['LD_LIBRARY_PATH'].
奇怪的是,即使设置了PHP-FPM的日志记录debug,我也没有看到libmql1.so我使用CLI遇到的任何错误跟踪.OCI8扩展无法以静默方式加载.display_startup_errors = On在PHP-FPM中也是有效的php.ini.
我当选,看看是否OCI8扩展在Apache的工作,在同一台服务器上,它本身,提供我补充export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2到/etc/apache2/envvars; 在absense中,Apache在创业时抱怨:
PHP警告:PHP启动:无法加载动态库'oci8.so'(试过:/usr/lib/php/20170718/oci8.so(libmql1.so:无法打开共享对象文件:没有这样的文件或目录),/ usr/lib/php/20170718/oci8.so.so(/usr/lib/php/20170718/oci8.so.so:无法打开共享对象文件:没有这样的文件或目录))在第0行的Unknown中
LD_LIBRARY_PATH在Ubuntu 16.04 LTS上,根据我的观察以及有关/sf/answers/3166972791/的评论,在Ubuntu …