oracle - Ubuntu Oracle Instant Client tnsnames.ora
问题描述
我最近在 Ubuntu 18.04 上设置了 Oracle Instant Client,并尝试使用以下命令通过 sqlplus 连接到位于不同服务器上的数据库:
sqlplus username@orcl
我以以下格式编辑了我的 tnsnames.ora 文件:
甲骨文= (描述= (地址=(主机名)(端口=1521)) (连接数据= (SERVICE_NAME=service_name)))
在我输入密码后,它会收到错误消息:
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
如果我要手动输入连接数据,例如
sqlplus username/password@orcl:portnumber/service_name
我将要连接,但我不希望输入所有连接数据并将其保留为 username@host
我不确定是什么导致了错误,也不知道我是否需要在托管实际数据库的服务器端编辑任何文件以允许这样的连接。谢谢
解决方案
假设您不想输入密码;
此方法通常由 dba 完成,他们以 ssh 用户身份直接登录到该特定服务器/主机,其中他们的密码存储为散列私有/公钥(不是来自远程机器)
更简单的方法是使用 sqlplus username/password@remote_host_ip:1521/orcl 更好地在您的 kshrc/bashrc 文件中创建别名(并获取它们),这样您就可以用更少的击键获得所需的内容。
例如:nano .bashrc alias tosql='sqlplus 用户名/密码@remote_host_ip:1521/orcl'
推荐阅读
- reactjs - 如何使用gridfs通过axios发送图像?
- qliksense - 对度量进行分类以用作维度
- linux-kernel - 修改 linux 中的 write 系统调用给出错误的 RIP 值错误
- php - 我需要替换变量 php ->
- java - 从日期输入打印星期几
- reactjs - React - 无法使用`this`在回调函数中调用组件方法
- vb.net - 在 VB.net 中查找数据表中的重复行
- kotlin - 引用接口中定义的属性,kotlin
- javascript - React Native Firebase - createUserWithEmailAndPassword:第一个参数“电子邮件”必须是有效字符串
- c++ - MVC 设计模式 QT