温馨提示×

centos sqlplus与其他数据库连接方法

小樊
45
2025-12-29 06:15:21
栏目: 云计算

CentOS 上使用 SQL*Plus 连接数据库的正确方式

一、SQL*Plus 的定位与适用范围

  • SQL*PlusOracle 提供的命令行客户端,只能连接 Oracle 数据库,不能直接连接 MySQL、PostgreSQL、SQL Server 等其他数据库。若需连接非 Oracle 数据库,请使用各自的客户端工具(如 mysql、psql、sqlcmd)。

二、在 CentOS 上用 SQL*Plus 连接 Oracle 的常用方法

  • 本机操作系统认证(无需监听,常用于启停库)
    • 命令:sqlplus / as sysdba
  • 本地用户名/口令直连(需数据库实例可用)
    • 命令:sqlplus username/password
  • 使用 Net 服务名(需正确配置 tnsnames.ora
    • 命令:sqlplus username/password@net_service_name
  • 轻松连接(Easy Connect,最常用)
    • 命令:sqlplus username/password@//host:port/service_name
    • 示例:sqlplus scott/tiger@//192.168.1.10:1521/orcl
  • 在 SQL*Plus 会话内切换连接
    • 命令:conn username/password@//host:port/service_name
  • 说明
    • 监听默认端口为 1521;服务名与 SID 不同,按服务端实际配置填写。
    • sys 用户登录通常需加 AS SYSDBA

三、常见连接失败快速排查

  • 命令未找到或环境变量异常
    • 现象:“sqlplus: command not found”
    • 处理:确认已安装 Oracle 客户端/Instant Client,并正确设置 ORACLE_HOME、LD_LIBRARY_PATH、PATH 等环境变量。
  • 监听与网络
    • 处理:在服务器侧执行 lsnrctl status 检查监听;必要时启动监听 lsnrctl start;客户端可用 tnsping net_service_name 验证解析与连通性。
  • 名称解析失败
    • 现象:ORA-12154: TNS:could not resolve the connect identifier specified
    • 处理:检查 $ORACLE_HOME/network/admin/tnsnames.ora 中服务名、主机、端口、服务名是否正确。
  • 目标主机或端口不可达
    • 现象:ORA-12545: Connect failed because target host or object does not exist
    • 处理:核对 hostname/IPport,确认防火墙放行 1521,并确保数据库监听在该端口。
  • 认证失败
    • 现象:ORA-01017: invalid username/password; logon denied
    • 处理:核对用户名/口令(注意大小写),必要时重置密码。

四、需要连接 MySQL、PostgreSQL、SQL Server 时的替代工具与命令

  • 建议做法:在同一台 CentOS 上安装对应客户端,用各自原生工具连接。
数据库 推荐客户端工具 典型连接命令示例
MySQL mysql 客户端 mysql -h 127.0.0.1 -P 3306 -u root -p
PostgreSQL psql 客户端 psql -h localhost -p 5432 -U postgres -W
SQL Server sqlcmd 工具 sqlcmd -S localhost,1433 -U sa -P ‘YourPassword’
  • 安装提示(CentOS)
    • MySQL 客户端:sudo yum install mysql
    • PostgreSQL 客户端:sudo yum install postgresql
    • SQL Server 客户端:按微软指引安装 mssql-toolsunixODBC-dev

0