CentOS下安装cx_Oracle

第一步,先安装Oracle客户端,结合你的情况自己找合适的版本,我下载的是 oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm 下载地址


   rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

第二步,找出你的ORACLE_HOME,我安装之后在这里:/usr/lib/oracle/11.2/client64/lib/

第三步,下载oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip 下载地址。解压,把里面那个叫sdk的文件夹复制到 /usr/lib/oracle/11.2/client64/lib/

第四步,做一个软链:


   $ cd /usr/lib/oracle/11.2/client64/lib/
   $ ln -s libclntsh.so.11.1 libclntsh.so

第五步,安装cx_Oracle:


    $ export ORACLE_HOME=/usr/lib/oracle/11.2/client64/lib
    $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    $ easy_install cx_Oracle
   
试一下:

   $ python
   $ import cx_Oracle
   
done.

不过别高兴得太早,还没配环境变量,一退再进去就不行了,在.bashrc里加入刚才安装之前的那两句:


      $cd vim ~/.bashrc
      export ORACLE_HOME=/usr/lib/oracle/11.2/client64/lib
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
   

要是你是部署生产环境,上面一步还没完事,那步只保证你登录上去时可以玩。


  $ echo  /usr/lib/oracle/11.2/client64/lib  > /etc/ld.so.conf.d/oracle.conf
  $ ldconfig
其实如果你做完这个配置,.bashrc是不需要改了的。
终于圆满了,坑爹的Oracle...

ODY :
您好,安装完11g客户端后sqlplus连接服务器是正常的,但重启服务器sqlplus服务就无法运行了,请问在哪添加开机自动启动?期待您的回复!
老楠 Reply to ODY :
如果是linux下的话,用whereis sqlplus查一下你的sqlplus安装在哪里,在/usr/bin里有没有相关可执行命令等,检查OracleServiceORCL是不是已经启动。 linux的环境变量添加一般在/etc/ld.so.conf.d/目录下(CentOS和Ubuntu都如此),本文最后两行代码就是干这个用的,但这跟开机启动还有点区别,开机启动你可以查查命令chkconfig的用法。 不过不太明白为什么要sqlplus开机启动,sqlplus不是服务,是客户端工具,一般不需要在开机的时候启动,需要的时候用命令或者图形界面调用即可。
For example, "name@something.com". If someone replies to you it will be via email.
For example, "http://someaddress.com"