Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Database Interface Upgrades | ||||||||
Added: | ||||||||
> > | ||||||||
Compatibility with newer versions of popular databases is among the many features of APPX 5.0.
Oracle | ||||||||
Line: 6 to 7 | ||||||||
Oracle
| ||||||||
Changed: | ||||||||
< < | The Oracle connectivity is provided by the Oracle Instant Client. | |||||||
> > | The Oracle connectivity is provided by the Oracle Instant Client. | |||||||
APPX to Oracle quick installation steps, with the assumption that you have a working install of Oracle 10g R2:
| ||||||||
Line: 21 to 23 | ||||||||
Create directory for Oracle Instant Client bundle to download to.I'm going to create a directory to place the zipped bundled Oracle Instant Client files. For my example, I'm going to use /usr/local/src/oracle/instantclient/. | ||||||||
Changed: | ||||||||
< < | [root@tubes /]# mkdir -p /usr/local/src/oracle/instantclient/ [root@tubes /]# cd /usr/local/src/oracle/instantclient/ | |||||||
> > | [root@tubes /]# *mkdir -p /usr/local/src/oracle/instantclient/* [root@tubes /]# *cd /usr/local/src/oracle/instantclient/* | |||||||
[root@tubes instantclient]# | ||||||||
Added: | ||||||||
> > | ||||||||
Download the Oracle Instant Client files for Linux.APPX requires at least the Basic package, but it is recommended that you grab the SQL*Plus package too for debugging. http://www.oracle.com/technology/tech/oci/instantclient/index.html | ||||||||
Line: 36 to 38 | ||||||||
For 11g | ||||||||
Changed: | ||||||||
< < | If you are running Oracle 11g, then use the 11g Instant Client. At the time this document was created, the current version is 11.1.0.6.0 , basic.zip (42,285,643 bytes), and sqlplus.zip (784,417 bytes). Place the downloaded files in the /usr/local/src/oracle/instantclient/ directory, then unzip them. | |||||||
> > | If you are running Oracle 11g, then use the 11g Instant Client. At the time this document was created, the current version is 11.1.0.6.0 , basic.zip (42,285,643 bytes), and sqlplus.zip (784,417 bytes). Place the downloaded files in the /usr/local/src/oracle/instantclient/ directory, then unzip them. | |||||||
Place the basic and sqlplus zipped files into /usr/local/src/oracle/instantclient/, and unzip them: | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# pwd | |||||||
> > | [root@tubes instantclient]# *pwd* | |||||||
/usr/local/src/oracle/instantclient | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ls -la | |||||||
> > | [root@tubes instantclient]# ls -la | |||||||
total 34656 drwxr-xr-x 2 root root 4096 Jun 5 15:01 . drwxr-xr-x 3 root root 4096 Jun 5 14:59 .. -rw-r--r-- 1 root root 34687861 Jun 5 15:01 oracle-instantclient-basic-10.2.0.4-1.i386.zip -rw-r--r-- 1 root root 744730 Jun 5 15:01 oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# unzip oracle-instantclient-basic-10.2.0.4-1.i386.zip | |||||||
> > | [root@tubes instantclient]# unzip oracle-instantclient-basic-10.2.0.4-1.i386.zip | |||||||
Archive: oracle-instantclient-basic-10.2.0.4-1.i386.zip inflating: instantclient_10_2/BASIC_README inflating: instantclient_10_2/classes12.jar | ||||||||
Line: 61 to 61 | ||||||||
inflating: instantclient_10_2/libociei.so inflating: instantclient_10_2/libocijdbc10.so inflating: instantclient_10_2/ojdbc14.jar | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# unzip oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip | |||||||
> > | [root@tubes instantclient]# unzip oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip | |||||||
Archive: oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip inflating: instantclient_10_2/SQLPLUS_README inflating: instantclient_10_2/glogin.sql inflating: instantclient_10_2/libsqlplus.so inflating: instantclient_10_2/libsqlplusic.so inflating: instantclient_10_2/sqlplus | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ls -la | |||||||
> > | [root@tubes instantclient]# ls -la | |||||||
total 34660 drwxr-xr-x 3 root root 4096 Jun 5 15:01 . drwxr-xr-x 3 root root 4096 Jun 5 14:59 .. drwxr-xr-x 2 root root 4096 Jun 5 15:01 instantclient_10_2 -rw-r--r-- 1 root root 34687861 Jun 5 15:01 oracle-instantclient-basic-10.2.0.4-1.i386.zip -rw-r--r-- 1 root root 744730 Jun 5 15:01 oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ls -la instantclient_10_2/ | |||||||
> > | [root@tubes instantclient]# ls -la instantclient_10_2/ | |||||||
total 102424 drwxr-xr-x 2 root root 4096 Jun 5 15:01 . drwxr-xr-x 3 root root 4096 Jun 5 15:01 .. | ||||||||
Line: 98 to 99 | ||||||||
Place unzipped Oracle Instant Client files into permanent installation target directory.Now move the unzipped directory (instantclient_10_2) that contains both the basic and SQL*Plus files from the Oracle Instant Client, into the desired permanent directory. In my example, I'm using /usr/local/, so that the Oracle files will be in a directory /usr/local/instantclient_10_2/. | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# pwd | |||||||
> > | [root@tubes instantclient]# *pwd* | |||||||
/usr/local/src/oracle/instantclient | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ls -la | |||||||
> > | [root@tubes instantclient]# ls -la | |||||||
total 34660 drwxr-xr-x 3 root root 4096 Jun 5 15:01 . drwxr-xr-x 3 root root 4096 Jun 5 14:59 .. drwxr-xr-x 2 root root 4096 Jun 5 15:01 instantclient_10_2 -rw-r--r-- 1 root root 34687861 Jun 5 15:01 oracle-instantclient-basic-10.2.0.4-1.i386.zip -rw-r--r-- 1 root root 744730 Jun 5 15:01 oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ls /usr/local/ | |||||||
> > | [root@tubes instantclient]# ls /usr/local/ | |||||||
appx appx.tgz basic.zip bin etc games include lib libexec sbin share src | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# mv instantclient_10_2/ /usr/local/ [root@tubes instantclient]# ls /usr/local/ | |||||||
> > | [root@tubes instantclient]# mv instantclient_10_2/ /usr/local/ [root@tubes instantclient]# ls /usr/local/ | |||||||
appx appx.tgz basic.zip bin etc games include instantclient_10_2 lib libexec sbin share src [root@tubes instantclient]# | ||||||||
Line: 118 to 119 | ||||||||
Configure the operating system's dynamic linker run time bindingsNow we must register the Oracle Instant Client library files with the system to make the shared library's path known. I'm going to use ldconfig. | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ldconfig -v|grep libclntsh [root@tubes instantclient]# ldconfig -v|grep instant | |||||||
> > | [root@tubes instantclient]# *ldconfig -v|grep libclntsh* [root@tubes instantclient]# *ldconfig -v|grep instant* | |||||||
[root@tubes instantclient]# | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# cat /etc/ld.so.conf | |||||||
> > | [root@tubes instantclient]# cat /etc/ld.so.conf | |||||||
include ld.so.conf.d/*.conf | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# echo /usr/local/instantclient_10_2/ >> /etc/ld.so.conf [root@tubes instantclient]# cat /etc/ld.so.conf | |||||||
> > | [root@tubes instantclient]# echo /usr/local/instantclient_10_2/ >> /etc/ld.so.conf [root@tubes instantclient]# cat /etc/ld.so.conf | |||||||
include ld.so.conf.d/*.conf /usr/local/instantclient_10_2/ [root@tubes instantclient]# | ||||||||
Line: 133 to 134 | ||||||||
Build cache used by the operating system's run-time linkerNow, let's rebuild the ldconfig cache, and verify that the library's are available system wide. | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ldconfig [root@tubes instantclient]# ldconfig -v|grep libclntsh | |||||||
> > | [root@tubes instantclient]# *ldconfig* [root@tubes instantclient]# *ldconfig -v|grep libclntsh* | |||||||
libclntsh.so.10.1 -> libclntsh.so.10.1 | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient]# ldconfig -v|grep instant | |||||||
> > | [root@tubes instantclient]# ldconfig -v|grep instant | |||||||
/usr/local/instantclient_10_2: [root@tubes instantclient]# | ||||||||
Line: 144 to 145 | ||||||||
Identify version of libclntsh.so that is included with downloaded Oracle Instant Client bundleAPPX needs to know the name of the Oracle libclntsh.so file on your system. This file name changes from version to version. We must now identify the libclntsh file name that was distributed in the Oracle Instant Client bundle. Look inside the instantclient directory for a file that begins with libclntsh. To show you examples of Oracle Instant Client 10.2 and Oracle Instant Client 11.1, I have installed both versions in /usr/local/. | ||||||||
Changed: | ||||||||
< < | [joe@tubes instantclient_10_2]$ ls -la /usr/local/instantclient_1*/libclnt* | |||||||
> > | [joe@tubes instantclient_10_2]$ *ls -la /usr/local/instantclient_1*/libclnt** | |||||||
-rwxrwxrwx 1 root root 19076649 Feb 17 03:57 /usr/local/instantclient_10_2/libclntsh.so.10.1 -rwxrwxrwx 1 root root 35295891 Aug 1 2007 /usr/local/instantclient_11_1/libclntsh.so.11.1 [joe@tubes instantclient_10_2]$ | ||||||||
Line: 157 to 158 | ||||||||
| ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# cd /usr/local/instantclient_10_2/ [root@tubes instantclient_10_2]# ln -s /usr/local/instantclient_10_2/libclntsh.so.10.1 /usr/local/instantclient_10_2/libclntsh.so [root@tubes appx]# ls -la /usr/local/instantclient_10_2/libclntsh.so | |||||||
> > | [root@tubes appx]# *cd /usr/local/instantclient_10_2/* [root@tubes instantclient_10_2]# *ln -s /usr/local/instantclient_10_2/libclntsh.so.10.1 /usr/local/instantclient_10_2/libclntsh.so* [root@tubes appx]# *ls -la /usr/local/instantclient_10_2/libclntsh.so* | |||||||
lrwxrwxrwx 1 root root 47 Jun 5 15:56 libclntsh.so -> /usr/local/instantclient_10_2/libclntsh.so.10.1 [root@tubes instantclient_10_2]# | ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# grep APPX_OCI_DIR /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes appx]# grep APPX_OCI_DIR /usr/local/appx/data/appx.env | |||||||
[root@tubes instantclient_10_2]# | ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# echo APPX_OCI_DIR=/usr/local/instantclient_10_2/ >> /usr/local/appx/data/appx.env [root@tubes appx]# grep APPX_OCI_DIR /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes appx]# echo APPX_OCI_DIR=/usr/local/instantclient_10_2/ >> /usr/local/appx/data/appx.env [root@tubes appx]# grep APPX_OCI_DIR /usr/local/appx/data/appx.env | |||||||
APPX_OCI_DIR=/usr/local/instantclient_10_2/ [root@tubes appx]# | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Set APPX_OCI_LIB
| ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# [root@tubes appx]# grep APPX_OCI_LIB /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes appx]# [root@tubes appx]# *grep APPX_OCI_LIB /usr/local/appx/data/appx.env* | |||||||
[root@tubes appx]# | ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# echo APPX_OCI_LIB=libclntsh.so.10.1 >> /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes appx]# echo APPX_OCI_LIB=libclntsh.so.10.1 >> /usr/local/appx/data/appx.env | |||||||
[root@tubes appx]# | ||||||||
Changed: | ||||||||
< < | [root@tubes appx]# grep APPX_OCI_LIB /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes appx]# grep APPX_OCI_LIB /usr/local/appx/data/appx.env | |||||||
APPX_OCI_LIB=libclntsh.so.10.1 [root@tubes appx]# | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Use the Oracle Instant Client's version of SQL*Plus to verify connectify to Oracle.Now let's verify that we can connect to Oracle using Oracle's SQL*Plus tool. I'm going to use the following parameters for my example, be sure and use values that are correct for your Oracle instance. user=scott, password=password, server=tubes, port=1521, and Oracle Instance=appx. | ||||||||
Changed: | ||||||||
< < | [root@tubes instantclient_10_2]# /usr/local/instantclient_10_2/sqlplus scott/password@tubes:1521/appx | |||||||
> > | [root@tubes instantclient_10_2]# */usr/local/instantclient_10_2/sqlplus scott/password@tubes:1521/appx* | |||||||
SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jun 4 09:17:55 2008 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options | ||||||||
Changed: | ||||||||
< < | SQL> show all | |||||||
> > | SQL> show all | |||||||
appinfo is OFF and set to "SQL*Plus" arraysize 15 autocommit OFF | ||||||||
Line: 213 to 210 | ||||||||
concat "." (hex 2e) copycommit 0 COPYTYPECHECK is ON | ||||||||
Changed: | ||||||||
< < | define "&" (hex 26) | |||||||
> > | define "&" (hex 26) | |||||||
describe DEPTH 1 LINENUM OFF INDENT ON echo OFF editfile "afiedt.buf" | ||||||||
Line: 269 to 266 | ||||||||
USER is "SCOTT" verify ON wrap : lines will be wrapped | ||||||||
Changed: | ||||||||
< < | SQL> quit | |||||||
> > | SQL> quit | |||||||
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options [root@tubes instantclient_10_2]# | ||||||||
Line: 279 to 277 | ||||||||
Well, that looks good. Let's configure our FMS settings inside APPX and make a connection!
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
ODBCMySQL 5.0.22 | ||||||||
Line: 311 to 315 | ||||||||
Here are the steps I used to make connection with APPX 4.3.0 and MySQL 5.0.22 with both installed on the same Red Hat Enterprise 5.1, 32 bit server. The MySQL and UnixODBC will be provided by Red Hat, and the mysql-connector-odbc will be provided by MySQL. Red Hat's Yum repositories do contain mysql-connector-odbc, but at the time of this test, it was 3.51.12 (too old). For this connection we need 3.51.22 or newer. We'll get this component from the MySQL.com website.
Download mysql-connector-odbc from MySQL.com website. | ||||||||
Added: | ||||||||
> > | ||||||||
You should go to MySQL.com's ODBC Connector download site and get the mysql-connector-odbc in the format that is right for your platform. My test server is Red Hat 5.1 32 bit, so I'll download the RPM format for x86 Red Hat. | ||||||||
Changed: | ||||||||
< < | [root@tubes ~]# cd /usr/local/src [root@tubes src]# mkdir mysql-connector-odbc.from.mysql.com [root@tubes src]# cd mysql-connector-odbc.from.mysql.com/ [root@tubes mysql-connector-odbc.from.mysql.com]# wget http://mirror.trouble-free.net/mysql_mirror/Downloads/Connector-ODBC/3.51/mysql-connector-odbc-3.51.25-0.i386.rpm | |||||||
> > | [root@tubes ~]# *cd /usr/local/src* [root@tubes src]# *mkdir mysql-connector-odbc.from.mysql.com* [root@tubes src]# *cd mysql-connector-odbc.from.mysql.com/* [root@tubes mysql-connector-odbc.from.mysql.com]# *wget http://mirror.trouble-free.net/mysql_mirror/Downloads/Connector-ODBC/3.51/mysql-connector-odbc-3.51.25-0.i386.rpm* | |||||||
Resolving mirror.trouble-free.net... 66.45.230.130 Connecting to mirror.trouble-free.net|66.45.230.130|:80... connected. | ||||||||
Line: 326 to 330 | ||||||||
Install MySQL, MySQL-Server, and UnixODBC | ||||||||
Deleted: | ||||||||
< < | We will now install MySQL 5.0.22 (MySQL client programs and shared libraries.), MySQL-Server 5.0.22-2.2 (The MySQL server and related files.) and UnixODBC 2.2.11-7.1 (includes low-level drivers for MySQL, PostgreSQL, and local files.) | |||||||
Changed: | ||||||||
< < | ||||||||
> > | We will now install MySQL 5.0.22 (MySQL client programs and shared libraries.), MySQL-Server 5.0.22-2.2 (The MySQL server and related files.) and UnixODBC 2.2.11-7.1 (includes low-level drivers for MySQL, PostgreSQL, and local files.) | |||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# yum install mysql mysql-server unixODBC | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *yum install mysql mysql-server unixODBC* | |||||||
Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies | ||||||||
Changed: | ||||||||
< < | --> Populating transaction set with selected packages. Please wait.
> Package mysql.i386 0:5.0.22-2.2.el5_1.1 set to be updated > Downloading header for mysql-server to pack into transaction set. | |||||||
> > | --> Populating transaction set with selected packages. Please wait.
> Package mysql.i386 0:5.0.22-2.2.el5_1.1 set to be updated > Downloading header for mysql-server to pack into transaction set. | |||||||
mysql-server-5.0.22-2.2.e 100% |=========================| 33 kB 00:00 | ||||||||
Changed: | ||||||||
< < | > Package mysql-server.i386 0:5.0.22-2.2.el5_1.1 set to be updated > Downloading header for unixODBC to pack into transaction set. | |||||||
> > | > Package mysql-server.i386 0:5.0.22-2.2.el5_1.1 set to be updated > Downloading header for unixODBC to pack into transaction set. | |||||||
unixODBC-2.2.11-7.1.i386. 100% |=========================| 28 kB 00:00 | ||||||||
Changed: | ||||||||
< < | > Package unixODBC.i386 0:2.2.11-7.1 set to be updated --> Running transaction check --> Processing Dependency: perl-DBD-MySQL for package: mysql-server --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. > Downloading header for perl-DBD-MySQL to pack into transaction set. | |||||||
> > | > Package unixODBC.i386 0:2.2.11-7.1 set to be updated --> Running transaction check --> Processing Dependency: perl-DBD-MySQL for package: mysql-server --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. > Downloading header for perl-DBD-MySQL to pack into transaction set. | |||||||
perl-DBD-MySQL-3.0007-1.f 100% |=========================| 8.3 kB 00:00 | ||||||||
Changed: | ||||||||
< < | > Package perl-DBD-MySQL.i386 0:3.0007-1.fc6 set to be updated --> Running transaction check | |||||||
> > | > Package perl-DBD-MySQL.i386 0:3.0007-1.fc6 set to be updated --> Running transaction check | |||||||
Dependencies Resolved | ||||||||
Line: 392 to 395 | ||||||||
Complete! [root@tubes mysql-connector-odbc.from.mysql.com]# | ||||||||
Added: | ||||||||
> > | ||||||||
Install mysql-connector-odbc version 3.51.22 or newer. | ||||||||
Added: | ||||||||
> > | ||||||||
We need to install mysql-connector-odbc version 3.51.22 or newer. We already downloaded it in an earlier step. | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# rpm -ivh mysql-connector-odbc-3.51.25-0.i386.rpm | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *rpm -ivh mysql-connector-odbc-3.51.25-0.i386.rpm* | |||||||
error: Failed dependencies: libltdl.so.3 is needed by mysql-connector-odbc-3.51.25-0.i386 | ||||||||
Line: 400 to 404 | ||||||||
error: Failed dependencies: libltdl.so.3 is needed by mysql-connector-odbc-3.51.25-0.i386 | ||||||||
Added: | ||||||||
> > | ||||||||
As you can see, my server is missing libltdl.so.3. That file is found in the libtool-ltdl package. Let's install it now. | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# yum install libtool-ltdl | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *yum install libtool-ltdl* | |||||||
Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies | ||||||||
Changed: | ||||||||
< < | --> Populating transaction set with selected packages. Please wait.
> Downloading header for libtool-ltdl to pack into transaction set. | |||||||
> > | --> Populating transaction set with selected packages. Please wait.
> Downloading header for libtool-ltdl to pack into transaction set. | |||||||
libtool-ltdl-1.5.22-6.1.i 100% |=========================| 15 kB 00:00 | ||||||||
Changed: | ||||||||
< < | > Package libtool-ltdl.i386 0:1.5.22-6.1 set to be updated --> Running transaction check | |||||||
> > | > Package libtool-ltdl.i386 0:1.5.22-6.1 set to be updated --> Running transaction check | |||||||
Dependencies Resolved | ||||||||
Line: 443 to 447 | ||||||||
Complete! [root@tubes mysql-connector-odbc.from.mysql.com]# | ||||||||
Added: | ||||||||
> > | ||||||||
Success! Now let's resume our installation of mysql-connector-odbc. | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# rpm -ivh mysql-connector-odbc-3.51.25-0.i386.rpm | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *rpm -ivh mysql-connector-odbc-3.51.25-0.i386.rpm* | |||||||
Preparing... ########################################### [100%]
| ||||||||
Line: 451 to 455 | ||||||||
[myodbc3i.c][589][INFO] Driver registered. Usage count is 1. Location "/etc" [root@tubes mysql-connector-odbc.from.mysql.com]# | ||||||||
Added: | ||||||||
> > | ||||||||
Create MySQL database and database user. | ||||||||
Added: | ||||||||
> > | ||||||||
If you don't already have a MySQL database created along with a MySQL database user, you need to create one. Our example will use a database named appx. The MySQL user name will be appx, which is a preexisting OS user. Substitute your own values for database name and database/OS user. | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# mysql -uroot -p | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *mysql -uroot -p* | |||||||
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 5.0.22 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. | ||||||||
Changed: | ||||||||
< < | mysql> create database appx; | |||||||
> > | mysql> create database appx; | |||||||
Query OK, 1 row affected (0.00 sec) | ||||||||
Changed: | ||||||||
< < | mysql> grant all on appx.* to appx@localhost identified by "password"; | |||||||
> > | mysql> grant all on appx. to appx@localhost identified by "password";* | |||||||
Query OK, 0 rows affected (0.00 sec) | ||||||||
Changed: | ||||||||
< < | mysql> flush privileges; | |||||||
> > | mysql> flush privileges; | |||||||
Query OK, 0 rows affected (0.00 sec) | ||||||||
Changed: | ||||||||
< < | mysql> quit | |||||||
> > | mysql> quit | |||||||
Bye
[root@tubes mysql-connector-odbc.from.mysql.com]#
Determine where UnixODBC expects odbc.ini and odbcinst.ini configuration files to be located. | ||||||||
Deleted: | ||||||||
< < | The odbc.ini and odbcinst.ini configuration files can be located on various places in your server's file system. The safest way to make sure you are working on the correct location is to run odbcinst -j. Here is an example: | |||||||
Changed: | ||||||||
< < | ||||||||
> > | The odbc.ini and odbcinst.ini configuration files can be located on various places in your server's file system. The safest way to make sure you are working on the correct location is to run odbcinst -j. Here is an example: | |||||||
Changed: | ||||||||
< < | [root@tubes tools]# odbcinst -j | |||||||
> > | [root@tubes tools]# *odbcinst -j* | |||||||
unixODBC 2.2.11 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini | ||||||||
Line: 493 to 500 | ||||||||
The odbc.ini file contains a list of Data Sources and any properties for each. There are two types of odbc.ini files; 1) System and 2) User. We will be working with the System DSN files only, and not the User DSN files. The System odbc.ini file usually exists at /etc/odbc.ini or /usr/local/etc/odbc.ini while the user usually exists at ~/.odbc.ini. We need to build the odbc.ini file. The odbc.ini file can contain stanzas for different drivers. The content of each driver's stanza is driver specific (MySQL, PostgreSQL, FreeTDS, MiniSQL etc...). My /etc/odbc.ini file looks like this: | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# [root@tubes tools]# cat /etc/odbc.ini | |||||||
> > | [root@tubes tools]# [root@tubes tools]# *cat /etc/odbc.ini* | |||||||
[mysql] Driver = mysql Database = appx | ||||||||
Line: 506 to 512 | ||||||||
UID = appx [root@tubes tools]# | ||||||||
Deleted: | ||||||||
< < | The [mysql] bracketed value is the Data Source Name. The Driver field is referenced in the APPX FMS settings, and in the odbcinst.ini file as a bracked value stanza header. The Database field is the name of the database that you want APPX to store data in. This database was created in an earlier step. The Description is informational only. The Pwd field contains the password for the MySQL user. Port is the port that MySQL is configured to listen on. The default is 3306. If it is something else, it would be listed in /etc/my.cnf. Server is the servername containing the MySQL instance we are connecting to. UID is the DSN's user account to connect to MySQL. | |||||||
Added: | ||||||||
> > | The [mysql] bracketed value is the Data Source Name. The Driver field is referenced in the APPX FMS settings, and in the odbcinst.ini file as a bracked value stanza header. The Database field is the name of the database that you want APPX to store data in. This database was created in an earlier step. The Description is informational only. The Pwd field contains the password for the MySQL user. Port is the port that MySQL is configured to listen on. The default is 3306. If it is something else, it would be listed in /etc/my.cnf. Server is the servername containing the MySQL instance we are connecting to. UID is the DSN's user account to connect to MySQL. | |||||||
Configure /etc/odbcinst.ini | ||||||||
Added: | ||||||||
> > | ||||||||
This ini file simply lists all installed drivers. It is usually located in either /etc/odbcinst.ini, or /usr/local/etc/odbcinst.ini. We need to build the odbcinst.ini file. The odbc.ini file content is driver specific (MySQL, PostgreSQL, FreeTDS, MiniSQL etc...). My file looks like this: | ||||||||
Line: 513 to 520 | ||||||||
This ini file simply lists all installed drivers. It is usually located in either /etc/odbcinst.ini, or /usr/local/etc/odbcinst.ini. We need to build the odbcinst.ini file. The odbc.ini file content is driver specific (MySQL, PostgreSQL, FreeTDS, MiniSQL etc...). My file looks like this: | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# cat /etc/odbcinst.ini | |||||||
> > | [root@tubes tools]# *cat /etc/odbcinst.ini* | |||||||
[PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/libodbcpsql.so | ||||||||
Line: 531 to 537 | ||||||||
UsageCount = 1 [root@tubes tools]# | ||||||||
Changed: | ||||||||
< < | We are only interested in the [mysql] stanza. The [mysql] value matches the Driver and [mysql] bracked stanza DSN name values from the odbc.ini file. The Description field is informational only. The Driver field is the name of the driver file that was provided by the mysql.com mysql-connector-odbc-3.51.25-0 RPM. The Pwd field contains the password for the MySQL user. Port is the port that MySQL is configured to listen on. The default is 3306. If it is something else, it would be listed in /etc/my.cnf. Server is the servername containing the MySQL instance we are connecting to. UID is the DSN's user account to connect to MySQL. | |||||||
> > | We are only interested in the [mysql] stanza. The [mysql] value matches the Driver and [mysql] bracked stanza DSN name values from the odbc.ini file. The Description field is informational only. The Driver field is the name of the driver file that was provided by the mysql.com mysql-connector-odbc-3.51.25-0 RPM. The Pwd field contains the password for the MySQL user. Port is the port that MySQL is configured to listen on. The default is 3306. If it is something else, it would be listed in /etc/my.cnf. Server is the servername containing the MySQL instance we are connecting to. UID is the DSN's user account to connect to MySQL. | |||||||
The mysql-connector-odbc that we downloaded from mysql.com did not have a Setup library included, so we skipped that property. The Setup property points to a shared lib containing functions to be called by ODBC Config. By convention it usually has a capitol S towards the end of the file name such as libmyodbc3S.so. ODBC Config would call this library to get driver specific property names during data source configuration. If ODBC Config can not find or use this file it will assume some defaults.
Verify DSNs are working. | ||||||||
Line: 535 to 542 | ||||||||
The mysql-connector-odbc that we downloaded from mysql.com did not have a Setup library included, so we skipped that property. The Setup property points to a shared lib containing functions to be called by ODBC Config. By convention it usually has a capitol S towards the end of the file name such as libmyodbc3S.so. ODBC Config would call this library to get driver specific property names during data source configuration. If ODBC Config can not find or use this file it will assume some defaults.
Verify DSNs are working. | ||||||||
Added: | ||||||||
> > | ||||||||
Now that the configuration files are in place, and the DSN is defined, let's test it out. We will use the isql command to make a connection to our DSN named mysql. | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# isql -v mysql | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# *isql -v mysql* | |||||||
+---------------------------------------+
| ||||||||
Line: 547 to 554 | ||||||||
| ||||||||
Changed: | ||||||||
< < | SQL> show databases; | |||||||
> > | SQL> show databases; | |||||||
+-----------------------------------------------------------------+
| ||||||||
Line: 557 to 564 | ||||||||
+-----------------------------------------------------------------+ SQLRowCount returns 3 3 rows fetched | ||||||||
Changed: | ||||||||
< < | SQL> quit | |||||||
> > | SQL> quit | |||||||
[root@tubes mysql-connector-odbc.from.mysql.com]# | ||||||||
Added: | ||||||||
> > | ||||||||
Troubleshoot isql problems. | ||||||||
Added: | ||||||||
> > | ||||||||
If isql complains that it can't make a connection to the MySQL socket in /tmp/mysql.sock, then the MySQL configuration file /etc/my.cnf might be set to create the file in /var/lib/mysql/mysql.sock. You should change the my.cnf file to point to /tmp/mysql.sock, or create a symbolic link. | ||||||||
Changed: | ||||||||
< < | isql -v mysql | |||||||
> > | *isql -v mysql* | |||||||
[08S01][unixODBC][MySQL][ODBC 3.51 Driver]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) [ISQL]ERROR: Could not SQLConnect | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# updatedb [root@tubes mysql-connector-odbc.from.mysql.com]# locate mysql.sock | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# updatedb [root@tubes mysql-connector-odbc.from.mysql.com]# locate mysql.sock | |||||||
/var/lib/mysql/mysql.sock | ||||||||
Changed: | ||||||||
< < | [root@tubes mysql-connector-odbc.from.mysql.com]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock | |||||||
> > | [root@tubes mysql-connector-odbc.from.mysql.com]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock | |||||||
Set the APPX_ODBC_LIB environment variable | ||||||||
Added: | ||||||||
> > | ||||||||
APPX needs to what and where the libodbc file is. libodbc is provided by unixODBC. On my system it is libodbc.so.1.0.0. For convenience, libodbc.so is a symbolic link to libodbc.so.1.0.0. | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# updatedb [root@tubes tools]# locate libodbc.so | |||||||
> > | [root@tubes tools]# *updatedb* [root@tubes tools]# *locate libodbc.so* | |||||||
/usr/lib/libodbc.so /usr/lib/libodbc.so.1 /usr/lib/libodbc.so.1.0.0 | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# ls -la /usr/lib/libodbc.so* lrwxrwxrwx 1 root root 16 Jun 11 15:37 /usr/lib/libodbc.so -> libodbc.so.1.0.0 lrwxrwxrwx 1 root root 16 Jun 11 15:37 /usr/lib/libodbc.so.1 -> libodbc.so.1.0.0 | |||||||
> > | [root@tubes tools]# ls -la /usr/lib/libodbc.so* lrwxrwxrwx 1 root root 16 Jun 11 15:37 /usr/lib/libodbc.so -> libodbc.so.1.0.0 lrwxrwxrwx 1 root root 16 Jun 11 15:37 /usr/lib/libodbc.so.1 -> libodbc.so.1.0.0 | |||||||
-rwxr-xr-x 1 root root 447700 Jan 7 2007 /usr/lib/libodbc.so.1.0.0 [root@tubes tools]# | ||||||||
Line: 585 to 593 | ||||||||
-rwxr-xr-x 1 root root 447700 Jan 7 2007 /usr/lib/libodbc.so.1.0.0 [root@tubes tools]# | ||||||||
Added: | ||||||||
> > | ||||||||
The APPX environment variable APPX_ODBC_LIB can be set an many places. Where it is set is not so important just as long as it is present at the begining of the appx session. A common convention is to set it either in the /usr/local/appx/data/appx.env file, or in the service daemon file /usr/local/appx/tools/appxd-8060.env. I'm going to place it in the daemon configuration file, after verifing that it is not set in the appx.env file. | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# grep APPX_ODBC_LIB /usr/local/appx/data/appx.env | |||||||
> > | [root@tubes tools]# *grep APPX_ODBC_LIB /usr/local/appx/data/appx.env* | |||||||
[root@tubes tools]# | ||||||||
Changed: | ||||||||
< < | [root@tubes tools]# ./appxLoginMgr -install -SockPort=8071 APPX_KEYMAP=WINDOWS APPX_ODBC_LIB=/usr/lib/libodbc.so APPX_SS_LOG=/usr/local/appx/appx_ss_log.txt APPX_SS_CODE=0xFFFFFFFF APPX_SQL_CMD=/usr/local/appx/appx_sql_cmd.txt APPX_DBG_CODE=0xFFFFFFFF | |||||||
> > | [root@tubes tools]# ./appxLoginMgr -install -SockPort=8071 APPX_KEYMAP=WINDOWS APPX_ODBC_LIB=/usr/lib/libodbc.so APPX_SS_LOG=/usr/local/appx/appx_ss_log.txt APPX_SS_CODE=0xFFFFFFFF APPX_SQL_CMD=/usr/local/appx/appx_sql_cmd.txt APPX_DBG_CODE=0xFFFFFFFF | |||||||
Warning - the engine that you named has the setuid bit enabled, you may not want that bit set for the authentication method that you have chosen (OS-User) | ||||||||
Line: 625 to 635 | ||||||||
Well, MySQL is installed, configured to work with UnixODBC. Let's make the FMS settings in APPX to wrap up.
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
| ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
PostgreSQL 8.1.11Quick installation steps for the APPX to PostgreSQL connection:
| ||||||||
Line: 660 to 676 | ||||||||
SQL Server 2000SQL Server 2005SQL Server 2008 | ||||||||
Added: | ||||||||
> > |
Please note that under Windows Server 2008 R2, as it is a x64 OS, you need to define the ODBC data source in the 32-bits ODBC administrator. It can be found in C:\Windows\SysWow64\odbcad32.exe.
| |||||||
SQL Server ExpressDatabase connectivity debug toolsAPPX Environment Variables | ||||||||
Line: 679 to 698 | ||||||||
stracelddBugs: | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Comments: | ||||||||
Added: | ||||||||
> > | ||||||||
Read what other users have said about this page or add your own comments.
| ||||||||
Changed: | ||||||||
< < | -- AlKalter - 04 Apr 2008 | |||||||
> > | -- AlKalter - 04 Apr 2008 | |||||||
|