场景
同事的一个新需求,需要在AIX上以shell脚本的方式,调用sqlplus客户端连接Oracle数据库,调用mysql客户端连接MySQL数据库。
想尽量简化开发,只用纯脚本方式实现,不想替换为Java或其它方案,且不想远程调用其它Linux主机上的客户端。
故需要在AIX上安装两个客户端(只有普通用户权限,没有root权限)。没什么太特别的地方,简单记录一下过程。
sqlplus客户端的安装
Oracle接供了AIX下的InstantClient二进制zip包,其中包含了sqlplus,安装起来比较简单,主要注意一下环境变量的设置。
下载InstantClient
这里是Oracle Instant Client的下载地址 ,目前最新版本是11.2.0.1.0
-
首先根据系统,选择"适用于 AIX5L(64 位)的 Instant Client"
-
然后再下载Basic和SQLPlus两个编译好的二进制包,注意两个都要下载
上传并解压
将下载好的两个包 basic-11.2.0.1.0-aix-ppc64.zip
和 sqlplus-11.2.0.1.0-aix-ppc64.zip
上传至服务器,使用unzip解压至同一目录,例如: /path/to/instantclient。
设置环境变量
编辑.profile文件,加入以下两行:
export PATH=$PATH:/path/to/instantclient
export LIBPATH=/path/to/instantclient
注意AIX下要设置LIBPATH环境变量,且只能填写InstantClient一个目录,不能用冒号分割加入其它目录。
mysql客户端的安装
MySQL官网 目前只提供5.5~5.7的下载,且二进制ZIP包和RPM/DEB包主要针对Linux的各个发行版,没有对应的AIX版本。
连源码包也是"Generic Linux"的,在AIX下编译的话编译器和依赖都会有问题。Google上可以搜索到MySQL 5.1版本在AIX下成功编译的案例(需要一些trick),不过老源码目前在官网已经下载不到了。
第三方网站bullfreeware提供了5.5版本的RPM包。此种方式有安全风险,不过已经是唯一的方案了。
下载并处理RPM包
- 在 bullfreeware 上下载MySQL5.5版本的客户端
MySQL-client-5.5.10-1.aix5.3.ppc.rpm
- 因为我们是没有root权限的,所有无法直接安装rpm包,需要将包里的二进制内容提取出来直接拷贝到安装目录:
将rpm直接使用unzip解压,解出如下的目录结构:
直接将bin目录下的二进制文件取出来上传至服务器,路径例如: /path/to/mysqlclient
设置环境变量
编辑.profile文件,加入PATH:
export PATH=$PATH:/path/to/mysqlclient
至此安装完毕