|
Instalar soporte unixODBC - Sybase - MSSQL en RHEL 4 |
|
|
|
|
Martes, 04 de Mayo de 2010 16:29 |
|
Es todo un calvario para mi administrar servidores propietarios. Sobre todo cuando estoy acostumbrado al maravilloso "aptitude" en distribuciones @debian. Y los servidores RHEL que administro no tenían soporte yum hasta ahora.
En este post describo como instalar el soporte unixODBC con drivers FreeTDS para acceso a Sybase y MSSQL.
Una vez instalado yum es recomendable actualizar el servidor.
Descargo los paquetes unixODBC. No estan dentro de los repositorios DAG.
$ wget ftp://ftp.pbone.net/mirror/ftp.centos.org/4.8/os/i386/CentOS/RPMS/unixODBC-2.2.11-1.RHEL4.1.i386.rpm
$ wget ftp://ftp.pbone.net/mirror/ftp.centos.org/4.8/os/i386/CentOS/RPMS/unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
El archivo unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm tiene los .h que necesito para el desarrollo en gcc que estoy realizando.
Descargo el cliente "sqsh" para realizar pruebas
$ wget ftp://ftp-linux.cc.gatech.edu/pub/linux/ALPHA/freetds/misc/sqsh-2.1-1.i386.rpm
Los instalo:
# rpm -ivh unixODBC-2.2.11-1.RHEL4.1.i386.rpm
# rpm -ivh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
# rpm -ivh sqsh-2.1-1.i386.rpm
Instalo desde yum el driver freetds:
# yum install freetds.i386
Configuro el driver freeTDS:
[TDS]
host = ip_del_servidor
port = 1433
tds version = 8.0
El "tds version" dependen de la versión de Sybase o MSSQL.
Configuramos los drivers:
[MSSQLServer]
Description = Driver para MS SQL Server
Driver = /usr/lib/libtdsodbc.so.0
Driver64 =
Setup = /usr/lib/libtdsS.so.1
Setup64 =
UsageCount = 1
CPTimeout =
CPReuse =
Configuramos la entrada ODBC:
[prueba]
Description = MSSQLServer
Driver = MSSQLServer
Servername = TDS
Database = base_de_datos
UID = usuario
PWD = clave
Port = 1433
ReadOnly = no
Ahora probamos:
Se puede acceder directamente a la base de datos con el cliente "sqsh" con la siguiente sintaxis:
$ sqsh -S 192.168.24.58 -U usuario -P clave -D base_de_datos
Para probar la conexión ODBC se debe usar el cliente "isql" con la siguiente sintaxis:
$ isql -v prueba usuario clave
Adicionalmente este script en php sirve para realizar pruebas, claro tienes que tener el soporte php5-sybase, php5-mssql y php5-odbc:
<?php
// Ejemplo de conexión directa
$sock=mssql_connect("ip_del_servidor","usuario","clave");
mssql_select_db("cob_atm",$sock);
$SQL = "select * from dbo.tm_errores_atm;";
$result= mssql_query($SQL);
echo "<h1>Ejemplo de conexion directa</h1><br>";
while ($row = mssql_fetch_array($result)) {
echo $row['ea_numero'] . " " . $row['ea_NextState'] . " " . $row['ea_msg_1'] . "<br>";
}
// Ejemplo de conexión via odbc
$data_source='prueba';
$user='usuario';
$password='clave';
$conn=odbc_connect($data_source,$user,$password);
$result = odbc_tables($conn);
$tables = array();
while (odbc_fetch_row($result))
array_push($tables, odbc_result($result, "TABLE_NAME") );
echo "<h1>Ejemplo de conexion via ODBC</h1><br>";
echo "<center> <table border = 1>";
echo "<tr><th>Table Count</th><th>Table Name</th></tr>";
foreach( $tables as $tablename ) {
$tablecount = $tablecount+1;
echo "<tr><td>$tablecount</td><td>$tablename</td></tr>";
}
echo "</table></center>";
odbc_close($conn);
?>
|
|
Actualizado ( Martes, 04 de Mayo de 2010 18:03 )
|