Access denied, Please sign in and make sure you have proper permission.
- 服务器
- 数据库
- 自身 mysql
- establish_connection 外部 oracle
-
Oracle 客户端配置
#Oracle Instant Client 64-bit version
export DYLY_LIBRARY_PATH=/opt/oracle/instantclient_12_1
export NLS_LANG=AMERICAN_AMERICA.UTF8
export PATH=$PATH:$DYLD_LIBRARY_PATH
export ORACLE_HOME=$DYLD_LIBRARY_PATH
-
现象
- Nginx 下部署 rails,所有 oracle 相关的查询,中文乱码(显示为????)
- 同一台机器,使用 rails s 命令启动服务,中文显示正常
请帅哥美女们给点解决办法或者建议
谢谢!
启动程序时 LANG 不同吧。
可以用 ENV 看下
/etc/environment 文件,添加这些条目:
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/instantclient_11_2
TNS_ADMIN=/opt/oracle/network/admin
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
OCI_HOME=/opt/oracle/instantclient_11_2
OCI_LIB=/opt/oracle/instantclient_11_2
OCI_LIB_DIR=/opt/oracle/instantclient_11_2
OCI_INCLUDE_DIR=/opt/oracle/instantclient_11_2/sdk/include
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
然后重启服务器(好像不重启通过命令也可以,不过从 windows 来的程序员,你懂得。。)
另外 Oracle Instant Client 只有在你需要连 Oracle 12c 的情况下采用 12.1,否则还是推荐 11.2,因为有一个很奇怪的 timezone 问题,instant client 只带一个 timezone 文件,然后 Oracle 版本不一样需要不一样的 timezone 文件。。