dbaccess
dbaccess 是 Informix 自带的、最标准的字符模式数据库客户端工具,也是进行日常管理和数据操作的基础。

交互式登录(最常用)
直接在命令行输入 dbaccess,不带任何参数,系统会进入交互式菜单。
dbaccess
执行后,您会看到一个菜单界面:
INFORMIX-DBACCESS
-----------------
Choose the type of activity:
1) databases (list and connect to a database)
2) query-language (create, retrieve, update, and delete data)
3) reports (create and print reports)
4) menus (create and run application menus)
5) exit dbaccess
Enter your choice (1-5):
- 输入
1:选择 "databases",系统会列出您在INFORMIXDIR/etc/sqlhosts文件中定义的所有数据库服务器别名,或者您可以直接输入数据库名称。 - 系统会提示您输入用户名和密码:
Enter database name (or @ for list): mydatabase Enter user name: informix Enter password: - 输入正确的信息后,您就成功连接到数据库了,并会返回到主菜单,此时可以选择
2进入 SQL 查询界面。
命令行直接登录
如果您想在登录后立即执行一个 SQL 脚本文件,可以使用以下格式:
dbaccess [数据库名] [SQL脚本文件名]
- 示例:
# 连接到 mydatabase 数据库,并执行 script.sql 文件 dbaccess mydatabase script.sql
- SQL 脚本中有错误,
dbaccess会返回非零的退出码。 - 如果数据库名称中包含特殊字符(如 ),建议用引号括起来,
dbaccess "my-database" script.sql。
- SQL 脚本中有错误,
命令行直接登录(不使用脚本文件)
如果您只想连接数据库并进入 SQL 模式,而不想先经过交互式菜单,可以提供一个不存在的脚本文件名( 或 /dev/null)。

dbaccess [数据库名] -
- 示例:
# 连接到 mydatabase 数据库,并直接进入 SQL 模式 dbaccess mydatabase -
连接成功后,您会看到
>提示符,可以直接输入 SQL 语句。
指定服务器登录
如果您的数据库不是在本机,或者需要通过 sqlhosts 文件中定义的特定服务器别名连接,可以在数据库名前加上 @服务器别名。
dbaccess @服务器别名 [数据库名] [SQL脚本文件名]
- 示例:
# 假设 sqlhosts 中定义了一个别名为 "ol_svr" 的服务器 # 连接到 ol_svr 服务器上的 mydatabase 数据库 dbaccess @ol_svr mydatabase -
其他常用客户端工具
除了 dbaccess,还有其他图形化或命令行工具可以用来登录 Informix。
onmode (主要用于管理,非登录)
onmode 命令主要用于数据库服务器的管理(如关闭、启动、切换模式等),但它有一个选项可以用来测试与数据库管理员的连接。

onmode -v
- 说明:此命令会尝试连接到
sysmaster数据库,并显示服务器版本、状态等信息,如果连接失败,通常说明INFORMIXSERVER环境变量或sqlhosts配置有问题。这不是一个标准的用户登录命令,但它是检查数据库服务是否可达的常用方法。
JDBC (Java 连接)
对于 Java 应用程序,通过 JDBC 连接 Informix 是标准做法。
JDBC URL 格式:
jdbc:informix-sqli://[主机名]:[端口号]/[数据库名]:INFORMIXSERVER=[服务器别名];
示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class InformixJDBCExample {
public static void main(String[] args) {
// JDBC URL, 请根据实际情况修改
String url = "jdbc:informix-sqli://192.168.1.100:1526/mydb:INFORMIXSERVER=ol_svr";
String user = "informix";
String password = "your_password";
// Informix JDBC 驱动类名
String driver = "com.informix.jdbc.IfxDriver";
try {
// 1. 加载驱动
Class.forName(driver);
// 2. 建立连接
System.out.println("正在连接到 Informix 数据库...");
Connection conn = DriverManager.getConnection(url, user, password);
if (conn != null) {
System.out.println("连接成功!");
// 在这里执行你的数据库操作...
conn.close();
}
} catch (ClassNotFoundException e) {
System.err.println("找不到 Informix JDBC 驱动类: " + e.getMessage());
} catch (SQLException e) {
System.err.println("数据库连接失败: " + e.getMessage());
}
}
}
ODBC (开放数据库连接)
ODBC 是一种通用的数据库连接标准,许多应用程序(如 Excel、Power BI、各种编程语言的 ODBC 驱动)都支持它。
- 前提:您需要在客户端机器上安装 Informix-Client SDK,并配置一个 DSN (Data Source Name)。
- 连接方式:在支持 ODBC 的应用程序中选择配置好的 DSN,然后输入用户名和密码即可。
登录前的环境变量配置
在使用 dbaccess 或 JDBC 连接 Informix 前,通常需要设置几个关键的环境变量,否则连接会失败。
INFORMIXDIR: Informix 产品安装的根目录。INFORMIXSERVER: 当前实例的服务器名称,必须与sqlhosts文件中的条目名一致。PATH: 需要将$INFORMIXDIR/bin添加到系统PATH中。DBLANG(可选): 设置数据库的语言和地区,DBLANG=en_US.819。
示例 (Linux / Unix Shell):
export INFORMIXDIR=/opt/informix export INFORMIXSERVER=ol_svr export PATH=$PATH:$INFORMIXDIR/bin export DBLANG=en_US.819
总结表格
| 工具/方法 | 命令/格式 | 主要用途 | 备注 |
|---|---|---|---|
dbaccess |
dbaccess |
交互式登录和管理 | 最核心、最标准的客户端工具。 |
dbaccess mydb script.sql |
批量执行 SQL 脚本 | 自动化任务常用。 | |
dbaccess mydb - |
直接进入 SQL 模式 | 快速执行 SQL 语句。 | |
onmode |
onmode -v |
测试与管理员连接 | 用于检查数据库服务状态,非用户登录。 |
| JDBC | jdbc:informix-sqli://... |
Java 应用程序连接 | 标准、灵活,适合开发。 |
| ODBC | 通过 DSN 连接 | 通用应用程序连接 | Excel, BI 工具等常用。 |
对于初学者和日常管理,熟练掌握 dbaccess 的各种用法是关键。
