Database Interface Upgrades
Compatilidad con las versiones nuevas de banco de dados populares es una de las características de APPX 5.0.
Oracle
- Oracle 10g R2 (10.2.0.1)
- Oracle 11g
Oracle connectivity esta proporcioando por
Oracle Instant Client.
APPX para Oracle proceso de instalacion, en una version que esta rodando en Oracle 10g R2:
- Instalar Oracle Instant Client Basic.
- Hay que hacer los archivos Oracle Instant Client visibles en el sistema con la herramiente ldconfig o algo semejante.
- Fijar, en el ambiente APPX Login Manager's daemon no en archivo appx.env, el ambiente de APPX variable APPX_OCI_LIB es igual al archivo liblcntsh.so que se encuentra en los archivos Oracle Instant Client library (Por ejemplo APPX_OCI_LIB=libclntsh.so.10.1).
- Definir los ajustes de APPX FMS.
APPX to Oracle detailed installation example:
Aca algunos pasos para hacer una coneccion con APPX 4.3.0 y Oracle 10gR2 los dos instalados en el mismo Red Hat Enterprise 5.1, 32 bit server. Estamos asumindo que usted tenga una version de Oracle 10g R2 rodando en el sistema.
Create directory for Oracle Instant Client bundle to download to.
Voy crear un directorio y poner un zipped de los archivos de Oracle Instant Client. Por ejemplo, voy usar /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]#
Download the Oracle Instant Client files for Linux.
APPX requiere por lo menos un paquete basico, pero es mejor tener un tambien SQL*Plus para poder hacer un debugging. <a href=http://www.oracle.com/technology/tech/oci/instantclient/index.html>http://www.oracle.com/technology/tech/oci/instantclient/index.html</a>
For 10gR2
Si usted esta usando Oracle 10gR2, puedes usar 10gR2 Instant Client. Al termino deso documento, la version atual es Linux X86 is 10.2.0.4, oracle-instantclient-basic-10.2.0.4-1.i386.zip (34,687,861 bytes), and oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip (744,730 bytes). Hay que poner los archivos bajados en /usr/local/src/oracle/instantclient/ directory.
For 11g
Si usted esta usando el Oracle 11g, entonces hay un 11g Instant Client. Al termino deso documento, la version atual es 11.1.0.6.0 , basic.zip (42,285,643 bytes), and sqlplus.zip (784,417 bytes). Hay que poner los archivos bajados en /usr/local/src/oracle/instantclient/ directory, y despues unzip.
Place the basic and sqlplus zipped files into /usr/local/src/oracle/instantclient/, and unzip them:
[root@tubes instantclient]# *pwd*
/usr/local/src/oracle/instantclient
[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
[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
inflating: instantclient_10_2/genezi
inflating: instantclient_10_2/libclntsh.so.10.1
inflating: instantclient_10_2/libnnz10.so
inflating: instantclient_10_2/libocci.so.10.1
inflating: instantclient_10_2/libociei.so
inflating: instantclient_10_2/libocijdbc10.so
inflating: instantclient_10_2/ojdbc14.jar
[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
[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
[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 ..
-rw-rw-r-- 1 root root 238 Feb 17 03:57 BASIC_README
-r--r--r-- 1 root root 1609607 Feb 17 03:57 classes12.jar
-rwxrwxr-x 1 root root 67766 Feb 17 03:57 genezi
-r--r--r-- 1 root root 1525 Feb 17 03:58 glogin.sql
-rwxrwxr-x 1 root root 19076649 Feb 17 03:57 libclntsh.so.10.1
-r-xr-xr-x 1 root root 5656445 Feb 17 03:57 libnnz10.so
-rwxrwxr-x 1 root root 1398244 Feb 17 03:57 libocci.so.10.1
-rwxrwxr-x 1 root root 72698427 Feb 17 03:57 libociei.so
-r-xr-xr-x 1 root root 120443 Feb 17 03:57 libocijdbc10.so
-r-xr-xr-x 1 root root 1434263 Feb 17 03:58 libsqlplusic.so
-r-xr-xr-x 1 root root 1069221 Feb 17 03:58 libsqlplus.so
-r--r--r-- 1 root root 1555682 Feb 17 03:57 ojdbc14.jar
-r-xr-xr-x 1 root root 8903 Feb 17 03:58 sqlplus
-rw-rw-r-- 1 root root 242 Feb 17 03:58 SQLPLUS_README
[root@tubes instantclient]#
Place unzipped Oracle Instant Client files into permanent installation target directory.
Ahora hay que cambiar el directorio unzipped (instantclient_10_2) que contiene los archivos basicos y SQL*Plus de Oracle Instant Client, en un directorio permanente. En mi ejemplo, voy usar /usr/local/, para que los archivos de Oracle estean en /usr/local/instantclient_10_2/.
[root@tubes instantclient]# *pwd*
/usr/local/src/oracle/instantclient
[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
[root@tubes instantclient]# *ls /usr/local/*
appx appx.tgz basic.zip bin etc games include lib libexec sbin share src
[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]#
Configure the operating system's dynamic linker run time bindings
Ahora hay que registrar los archivos Oracle Instant Client library con el sistema para hacer el path de la library conocido. Voy usar ldconfig.
[root@tubes instantclient]# *ldconfig -v|grep libclntsh*
[root@tubes instantclient]# *ldconfig -v|grep instant*
[root@tubes instantclient]#
[root@tubes instantclient]# *cat /etc/ld.so.conf*
include ld.so.conf.d/*.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]#
Build cache used by the operating system's run-time linker
Ahora, vamos reconstruir el cache de ldconfig, que la library esta disponible en todo el sistema.
[root@tubes instantclient]# *ldconfig*
[root@tubes instantclient]# *ldconfig -v|grep libclntsh*
libclntsh.so.10.1 -> libclntsh.so.10.1
[root@tubes instantclient]# *ldconfig -v|grep instant*
/usr/local/instantclient_10_2:
[root@tubes instantclient]#
Identify version of libclntsh.so that is included with downloaded Oracle Instant Client bundle
APPX necesita saber el nombre del archivo de Oracle libclntsh.so en su sistema. Eso archivo cambia de nombre de version en version. Necesitamos identificar o nombre del archivo de libclntsh que fue distribuido en el bundle de Oracle Instant Client. Mire dentro del directorio de instantclient para el nombre del archivo que empeza con libclntsh. Para mostrar ejemplos de Oracle Instant Client 10.2 y Oracle Instant Client 11.1, instale las versiones de los dos en /usr/local/.
[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]$
Como usted puede ver los archivos libclntsh son libclntsh.so.10.1, que vieron de Oracle Instant Client 10.2 Basic, y libclntsh.so.11.1, que vieron de Oracle Instant Client 11.1 Basic.
Para que APPX sepa la version del Instant client que usted instalo, hay que hacer una de las dos opciones abajo:
Crear un link simbolico de libclntsh.so para poner una variable de ambiante en APPX_OCI_DIR
- Podemos crear a link simbolico con el nombre libclntsh.so que apunta para la version que deseamos usar set la variable de ambiente APPX_OCI_DIR igual a localizacion de los archivos de Oracle Instant Client:
[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]#
[root@tubes appx]# *grep APPX_OCI_DIR /usr/local/appx/data/appx.env*
[root@tubes instantclient_10_2]#
[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]#
Fijar APPX_OCI_LIB
- O podemos poner una variable en ambiente en APPX igual al nombre del archivo. Primero vamos ver si el archivo esta %APPXPATH%/appx.env:
[root@tubes appx]#
[root@tubes appx]# *grep APPX_OCI_LIB /usr/local/appx/data/appx.env*
[root@tubes appx]#
[root@tubes appx]# *echo APPX_OCI_LIB=libclntsh.so.10.1 >> /usr/local/appx/data/appx.env*
[root@tubes appx]#
[root@tubes appx]# *grep APPX_OCI_LIB /usr/local/appx/data/appx.env*
APPX_OCI_LIB=libclntsh.so.10.1
[root@tubes appx]#
Use la version de Oracle Instant Client de SQL*Plus para verificar a coneccion para Oracle.
Ahora vamos verificar si podemos conectar para Oracle usando la herramienta Oracle SQL*Plus. Vamos usar los parametros para mi ejemplo, estea cierto que usted use los valores correctos para su instance de Oracle. user=scott, password=password, server=tubes, port=1521, y Oracle Instance=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
SQL> *show all*
appinfo is OFF and set to "SQL*Plus"
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace OFF
blockterminator "." (hex 2e)
btitle OFF and is the first few characters of the next SELECT statement
cmdsep OFF
colsep " "
compatibility version NATIVE
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK is ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
editfile "afiedt.buf"
embedded OFF
escape OFF
escchar OFF
FEEDBACK ON for 6 or more rows
flagger OFF
flush ON
heading ON
headsep "|" (hex 7c)
instance "local"
linesize 80
lno 14
loboffset 1
logsource ""
long 80
longchunksize 80
markup HTML OFF HEAD "" BODY "" TABLE "border='1' width='90%' align='center' summary='Script output'" SPOOL OFF ENTMAP ON PREFORMAT OFF
newpage 1
null ""
numformat ""
numwidth 10
pagesize 14
PAUSE is OFF
pno 0
recsep WRAP
recsepchar " " (hex 20)
release 1002000100
repfooter OFF and is NULL
repheader OFF and is NULL
serveroutput OFF
shiftinout INVISIBLE
showmode OFF
spool OFF
sqlblanklines OFF
sqlcase MIXED
sqlcode 0
sqlcontinue "> "
sqlnumber ON
sqlpluscompatibility 10.2.0
sqlprefix "#" (hex 23)
sqlprompt "SQL> "
sqlterminator ";" (hex 3b)
suffix "sql"
tab ON
termout ON
timing OFF
trimout ON
trimspool OFF
ttitle OFF and is the first few characters of the next SELECT statement
underline "-" (hex 2d)
USER is "SCOTT"
verify ON
wrap : lines will be wrapped
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]#
Configure APPX FMS settings
Ok, eso nos parece bien, Vamos configurar nuestros ajustes de FMS dentro de APPX y hacer una coneccion!
- En APPX, vamos a System Administration, y despues File Management, y despues FMS Groups.
- Crear un grupo FMS con los nombres apropiados y especificar type 5.
- Archivos en Server Name y Table Naming Scheme en FMS Group Attributes de su nuevo grupo FMS. El campo Server Name tiene un formato de ORACLE-HOST-NAME:ORACLE-PORT/ORACLE-SID. Las Table Naming Scheme puede poder ser mirada de sugerencias mostradas cuando seleccionamos el boton Hints.
- En Identities, defina una identidad default.
- Entre conta de Oracle para usar Default Identity, y hay que dejar Realm vacio.
- Entrar la contrasena de Oracle.
ODBC
Instalacion rapidad de los pasos de APPX para la connecion MySQL:
- Instalar MySQL.
- Instalar UnixODBC
- Instalar mysql-connector-odbc (version 3.51.22 or newer)
- Definir los archivos DSN, odbc.ini y odbcinst.ini.
- Fijar, en el ambiente APPX Login Manager's daemon o en el archivo appx.env, el ambiente APPX variable del nombre de archivo APPX_ODBC_LIB igual al nombre de unixodbc compartido de instalador UnixODBC . (Por ejemplo APPX_ODBC_LIB=/usr/lib/libodbc.so).
- Definir APPX FMS settings.
Instalacion detallada de ejemplo de la connecion APPX para MySQL:
Los pasos que nosotros hiciemos para hacer la connecion con APPX 4.3.0 y
MySQL 5.0.22 con los dos instalados en el mismo Red Hat Enterprise 5.1, 32 bit server.
MySQL y
UnixODBC estan disponibles de Red Hat, y el conector mysql-connector-odbc es provido de
MySQL. Los repositorios de Red Hat's Yum contiene mysql-connector-odbc, pero al momento de eso teste, fue 3.51.12 (una version vieja). Para esa connecion necesitamos 3.51.22 o mas nuevo. Vamos tener eso componente del sition de
MySQL.
Download mysql-connector-odbc from MySQL.com website.
Usted deve ir al sitio de <a href=http://dev.mysql.com/downloads/connector/odbc/3.51.html>MySQL.com's ODBC Connector </a> y tener el mysql-connector-odbc en el formato que es mas correcto para su plataforma. Mi servidor de teste es Red Hat 5.1 32 bit, entoncs voy bajar RPM format para x86 Red Hat.
[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.
15:35:31 (158 KB/s) - `mysql-connector-odbc-3.51.25-0.i386.rpm' saved [1862076/1862076]
Ahora vamos instalar
MySQL 5.0.22 (
MySQL con todos los programas y libraries.),
MySQL-Server 5.0.22-2.2 (
MySQL server y los archivos relacioandos.) y
UnixODBC 2.2.11-7.1 (incluye low-level drivers para
MySQL,
PostgreSQL,y archivos locales.)
[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
--> 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
---> 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
---> 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
---> Package perl-DBD-MySQL.i386 0:3.0007-1.fc6 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
mysql i386 5.0.22-2.2.el5_1.1 updates 3.0 M
mysql-server i386 5.0.22-2.2.el5_1.1 updates 10 M
unixODBC i386 2.2.11-7.1 base 832 k
Installing for dependencies:
perl-DBD-MySQL i386 3.0007-1.fc6 base 147 k
Transaction Summary
=============================================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 14 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): perl-DBD-MySQL-3.0 100% |=========================| 147 kB 00:01
(2/3): mysql-server-5.0.2 100% |=========================| 10 MB 01:20
(3/3): unixODBC-2.2.11-7. 100% |=========================| 832 kB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: mysql ######################### [1/4]
Installing: perl-DBD-MySQL ######################### [2/4]
Installing: mysql-server ######################### [3/4]
Installing: unixODBC ######################### [4/4]
Installed: mysql.i386 0:5.0.22-2.2.el5_1.1 mysql-server.i386 0:5.0.22-2.2.el5_1.1 unixODBC.i386 0:2.2.11-7.1
Dependency Installed: perl-DBD-MySQL.i386 0:3.0007-1.fc6
Complete!
[root@tubes mysql-connector-odbc.from.mysql.com]#
Instalar mysql-connector-odbc version 3.51.22 o mas nuevo.
Necesitamos instalar mysql-connector-odbc version 3.51.22 o mas nuevo. Ya tenemos eso bajado en un paso que ya hicimos.
[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
Como podemos mirar, mi servidor no tiene libltdl.so.3. El archivo esta encontrado en el paquete libtool-ltdl. Vamos instalar ahora.
[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
--> 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
---> Package libtool-ltdl.i386 0:1.5.22-6.1 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
libtool-ltdl i386 1.5.22-6.1 base 37 k
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 37 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): libtool-ltdl-1.5.2 100% |=========================| 37 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: libtool-ltdl ######################### [1/1]
Installed: libtool-ltdl.i386 0:1.5.22-6.1
Complete!
[root@tubes mysql-connector-odbc.from.mysql.com]#
éxito! Ahora vamos resumir nuestra instalacion de mysql-connector-odbc.
[root@tubes mysql-connector-odbc.from.mysql.com]# *rpm -ivh mysql-connector-odbc-3.51.25-0.i386.rpm*
Preparing... ########################################### [100%]
1:mysql-connector-odbc ########################################### [100%]
[myodbc3i.c][589][INFO] Driver registered. Usage count is 1. Location "/etc"
[root@tubes mysql-connector-odbc.from.mysql.com]#
Crear el database de MySQL y database user.
Si usted no tiene una base de datos de
MySQL con
MySQL database user, usted necesita crear una. Nustro ejemplo va usar una base de datos llamada appx. El user name de
MySQL va ser appx, que es uno usuario existente de OS. Substituyer sus propios valores de base de datos y database/OS user.
[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.
mysql> *create database appx;*
Query OK, 1 row affected (0.00 sec)
mysql> *grant all on appx.* to appx@localhost identified by "password";*
Query OK, 0 rows affected (0.00 sec)
mysql> *flush privileges;*
Query OK, 0 rows affected (0.00 sec)
mysql> *quit*
Bye
[root@tubes mysql-connector-odbc.from.mysql.com]#
Determinar donde UnixODBC expect odbc.ini y odbcinst.ini configuration files to be located.
El odbc.ini y los archivos de configuracion odbcinst.ini pueden ser colocados en varios lugares en su sistema de archivo de server. La mejor manera de saber si usted esta trabajando en el local correcto es rodar odbcinst -j. Un ejemplo:
[root@tubes tools]# *odbcinst -j*
unixODBC 2.2.11
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
USER DATA SOURCES..: /root/.odbc.ini
[root@tubes tools]#
Usted puede mirar donde los archivos de
UnixODBC en los dos sistemas de configuracion pueden estar localizados en /etc/odbc.ini y /etc/odbcinst.ini. Ahora que sabemos la localizacion, vamos configurar los archivos. Los dos archivos tienen secciones multiples y stanzas que son identificadas en bracked values. Cada bracked value es seguido de una propiedade de valor definido, un por linea, en el formato PROPERTY NAME=PROPERTY VALUE.
Configure /etc/odbc.ini
El archivo odbc.ini tiene una lista de Data Sources y propiedades para cada. Hay dos tipos de archivo de odbc.ini; 1) System y 2) User. Vamos trabajar solamente con los archivos de System DSN, y no con los archivos de User DSN. El archivo System odbc.ini usualmente existe en /etc/odbc.ini o /usr/local/etc/odbc.ini y el user generalmente esta en ~/.odbc.ini.
Necesitamos crear el archivo odbc.ini. El archivo odbc.ini puede tener stanzas para diferente drivers. El contenido para cada stanza del driver esta especificado en (
MySQL,
PostgreSQL,
FreeTDS,
MiniSQL etc...). Mi archivo es semejante a eso archivo /etc/odbc.ini:
[root@tubes tools]#
[root@tubes tools]# *cat /etc/odbc.ini*
[mysql]
Driver = mysql
Database = appx
Description = mysql odbc connection for appx
Pwd = password
Port = 3306
Server = localhost
UID = appx
[root@tubes tools]#
El valor bracketed de
[mysql] es Data Source Name. El campo
Driver es referido en APPX FMS settings, y el archivo odbcinst.ini es bracked value stanza header. El campo de
Database es el nombre del database que usted quiere APPX para poner los datos en eso. Eso database fue creado en un paso anterior.
Description es para informacion solamente. El campo
Pwd tiene la contrasena para el usuario de
MySQL.
Port es el port de
MySQL es configurada para ouvir. El default es 3306. Eso es algo diferente, va se escuchar en /etc/my.cnf.
Server es el servername contiendo
MySQL instance nos estamos conectando.
UID es DSN's user account para conectar
MySQL.
Configurar /etc/odbcinst.ini
El archivo ini simplemente lista todos los drivers instalados. Es normalmente localizado en /etc/odbcinst.ini, o /usr/local/etc/odbcinst.ini.
Necesitamos construir el archivo odbcinst.ini. El archivo odbc.ini tiene el driver especifico (
MySQL,
PostgreSQL,
FreeTDS,
MiniSQL etc...). Mi archivo nos parece:
[root@tubes tools]# *cat /etc/odbcinst.ini*
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 0
[MySQL ODBC 3.51 Driver]
DRIVER = /usr/lib/libmyodbc3.so
UsageCount = 0
[mysql]
Description = mysql odbc connection for appx
Driver = /usr/lib/libmyodbc3.so
UsageCount = 1
[root@tubes tools]#
Nosotros estamos interesado en una stanza en
[mysql]. El valor de
[mysql] el igual al
Driver y
[mysql] bracked stanza DSN nombre de os valores del archivo de odbc.ini. El campo de descripcion
Description es solo para informacion. El campo
Driver es el nombre para el archivo driver que fue proporcionado en mysql.com mysql-connector-odbc-3.51.25-0 RPM. El campo
Pwd tiene la contrasena para el usuario de
MySQL.
Port es el port que
MySQL esta configurado para escuchar. El default es 3306. Si es otro, va escuchar en /etc/my.cnf.
Server es el servername que tien una instance de
MySQL que estamos conectando con el.
UID es DSN's user account para conectar con
MySQL.
El mysql-connector-odbc que bajamos de mysql.com no tenia una library de Setup incluyedo, entonces nosotros no hicimos esa propiedade. El Setup property aponta para una library compartida lib que tiene funciones que van ser llamadas por ODBC Config. Por convencion normalmente tiene un S en el final como el nombre libmyodbc3S.so. ODBC Config va llamar esa library para tener informacion especifica de nombres de propriedades durante la configuracion de data source. Si ODBC Config no encontra o no puede usar eso nombre del archivo va assumir los valores de defaults.
Verificar DSNs estan trabajando.
Ahora que la configuracion de los archivos estan en local, y el DSN es definido, vamos testar. Vamos usar el comando de isql para hacer la connecion con nuestro DSN named mysql.
[root@tubes mysql-connector-odbc.from.mysql.com]# *isql -v mysql*
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> *show databases;*
+-----------------------------------------------------------------+
| Database |
+-----------------------------------------------------------------+
| information_schema |
| appx |
| test |
+-----------------------------------------------------------------+
SQLRowCount returns 3
3 rows fetched
SQL> *quit*
[root@tubes mysql-connector-odbc.from.mysql.com]#
Troubleshoot isql problemas.
Si isql no puede hacer una connecion con el
MySQL socket en /tmp/mysql.sock, entonces la configuracion de los archivos
MySQL /etc/my.cnf pueden ser creados los archivos en /var/lib/mysql/mysql.sock. Usted puede cambiar el archivo my.cnf para apuntar a /tmp/mysql.sock, o crear un link simbolico.
*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
[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
[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
APPX necesita saber donde el archivo donde esta libodbc. libodbc es provido por unixODBC. En mi sistema es libodbc.so.1.0.0. Por conveniencia, libodbc.so es un link simbolico a libodbc.so.1.0.0.
[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
[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]#
El ambiente de APPX variable APPX_ODBC_LIB puede se fijar en varios locales. Donde esta fijado no es tan importante pero es importante estar en la seccion de APPX. Una convencion comun es fijar en el archivo /usr/local/appx/data/appx.env, o en el servicio de archivo daemon /usr/local/appx/tools/appxd-8060.env. Voy poner el archivo de configuracion de daemon, despues de verificar que no esta fijado en el archivo appx.env.
[root@tubes tools]# *grep APPX_ODBC_LIB /usr/local/appx/data/appx.env*
[root@tubes tools]#
[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)
To turn off the setuid bit, chmod u-s ../appx
Configuration written to: appxd-8071.ini
Environment written to: appxd-8071.env
Service script written to: /etc/init.d/appxd-8071
Configuration complete
Registering service
Starting appxd-8071: serviceName: appxd-8071
servicePath: /usr/local/appx/tools/
Looking for config file in appxd-8071.ini
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)
To turn off the setuid bit, chmod u-s ../appx
Writing process ID to /var/run/appxd-8071.pid
running as process 2652 servicing port 8071
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)
To turn off the setuid bit, chmod u-s ../appx
up and running (process 2652 servicing port 8071)
Installation Complete
[root@tubes tools]# License server started as process 2657, logging to /usr/local/appx/tools/../data/license.log
[root@tubes tools]#
La instalacion del servicio fue completada con exito. Agrege una opcion para debug solamente los argumentos de servicio para crear los files de create log. Esos archivos de log pueden ser muy importantes en debugging problemas de connecion. Remover los argumentos de debug antes de mover el servicio a usuarios en produccion. Los argumentos que estamos usando son 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.
Configure APPX FMS parameters.
Finalmente,
MySQL esta instalado, configurado para trabajar con
UnixODBC. Vamos hacer un FMS settings en APPX para acabar.
- En APPX, va para System Administration, y despues File Management, y FMS Groups.
- Hay que crear un FMS group con el nombre apropiado, y especificar 6 para ODBC.
- Archivo en ODBC DSN nombre para MySQL, seguido de Table Naming Scheme en el grupo de FMS Group Attributes en su nuevo FMS group. La Table Naming Scheme puede ser seleccionado de una sugerencias usando el boton Hints. Tambien, podemos agregar tres valores de caracteres para el campoProxy Lock, use LOK.
- En Identities, definir una identity default.
- Entrar MySQL use para Default Identity, dejar Realm en blanco.
- Entrar con la contrasena de MySQL.
Pasos de instalacion rapida de APPX a la connecion PostgreSQL:
- Instalar PostgreSQL.
- Instalar UnixODBC.
- Definir archivos DSN, odbc.ini y odbcinst.ini
- Fijar en el ambiente de APPX Login Manager's daemon o en el archivo the appx.env, las variables de ambiente APPX son APPX_ODBC_LIB iguales a el nombre de archivo unixodbc compartido en archivo library de instalacion de UnixODBC . (Por ejemplo, APPX_ODBC_LIB=/usr/lib/libodbc.so).
- Ahora hay que definir APPX FMS settings.
Detailed installation example for the APPX to PostgreSQL connection:
Los pasos usados para conectar con APPX 4.3.0 y
PostgreSQL 8.1.11 con los dos instaladoes en el mismo Red Hat Enterprise 5.1, 32 bit server. La base de datos de
PostgreSQL y
UnixODBC son proporcionados por Red Hat.
UnixODBC tambien es proporcionado por Red Hat.
IBM DB/2
Microsoft SQL-Server
SQL Server 2000
SQL Server 2005
SQL Server 2008
SQL Server Express
Database connectivity debug tools
APPX Environment Variables
APPX_OCI_DIR
APPX_OCI_LIB
APPX_OCI_LIB
APPX_OCI_LIBS
APPX_SS_LOG
APPX_SS_CODE
APPX_SQL_CMD=/usr/local/appx/appx_sql_cmd.log
APPX_DBG_CODE=0xFFFFFFFF
Oracle
ORACLE_SID
ORACLE_HOME
TNS_ADMIN
Some OS tools to aid in debugging
strace
ldd
Bugs:
- Fixed - Bug Description 1.
- OPEN - <a href=http://bugtracker.appx.com/view_bug.jsp?bugid=2209>Bug 2209</a> - Lengthen field FMS Group Options - Server Name.
Comments:
Read what other users have said about this page or add your own comments.
--
AlKalter - 04 Apr 2008