MySQL, phpMyAdmin, ODBC

mysql_100×52-64.gifNota: En la mudanza de servidores se perdieron imágenes.

Exportar datos de Windows a Linux mediandt ODBC.

MySQL, phpMyAdmin , ODBC. Seguramente a alguno os habrá pasado que queréis añadir seguridad a los accesos de mysql y también la posibilidad de acceder mediante el front end phpMyAdmin , pero sobre todo l tema que nos ocupa sería la posibilidad de obtener datos por ODBC desde una máquina cliente en Windows por ejemplo.

Creación de usuarios con posibilidad de acceso desde otras máquinas:

Bien, primero explicaré lo que sucede cuando a determinamos nuevos usuarios (bien lo podemos hacer desde la consola o desde phpMyAdmin )

Desde la consola sería:

mysql > GRANT insert,select,update,delete,create,drop,alter ON {BASEDEDATOS} .* TO {USUARIO} @ localhost IDENTIFIED BY '{CONTRASEÑA}';

Salida / Ejemplo:

mysql> GRANT insert,select,update,delete,create,drop,alter ON centreon.* TO centreon @localhost IDENTIFIED BY 'centreon';
Query OK, 0 rows affected (0.04 sec)

Teniendo en cuanta cuales son los privilegios que se la van a otorgar al usuario.

Y desde phpMyAdmin accediendo al menú que se encuentra sólo acceder a phpMyAdmin -> Privilegios

Una vez dado un usuario nos encontramos que tanto desde la consola como desde el front end podemos decidir si será ‘ localhost ’ es decir el usuario que esté en la máquina local, el que podrá conectarse a la base de datos ([email protected] ), eso nos acotará los accesos de los clientes de otra máquinas que se quieran conectar a la base de datos que queramos o decidamos. Es entonces es cuando entra en juego en comodín % en el alta del usuario:

mysql> GRANT insert,select,update,delete,create,drop,alter ON {BASEDEDATOS} .* TO { USUARIO}@% IDENTIFIED BY '{CONTRASEÑA}';Lo que conseguimos con estoes que mysql acepte las conexiones des de cualquier sitio, de forma que con un soft ODBC que ‘hable’ mysql podremos conectarnos a la based de datos a la cual le hemos dado permisos.

Por supuesto necesitaremos poner un password al el usuario root .

mysql> update user set Password=PASSWORD(' tu_contraseña ') where user='root'; Nota: SIEMPRE que hagamos un cambio de este tipo es imprescindible que ejecutemos el siguiente commando :

mysql> flush privileges;
Query OK, 0 rows affected (0.11 sec)
A todas luces parce que no haya hecho nada, lo cualno es cierto, ‘sube’ al propio motor de la base de datos lso cambios efectuados. Esto es necesario hacerlo como root .

Accediendo desde phpMyAdmin :

Ahora bien, ya tenemos un usuario dado de alta y si en phpMyAdmin tenemos configurado la opción de poder acceder mediante ‘ cookies ’ definido en el fichero config.inc.php

$ cfg ['Servers'][$ i ][' auth_type '] = 'cookie'; // Authentication method ( config , http or cookie based)?

De forma que nos pida con que usuario y con que password accederemos a phpMyAdmin y con que permisos.

Pero nos puede pasar que no podamos entrar una vez estemos en el cuadro de diálogo que nos ofrece phpMyAdmin diciendonos que no nos reconoce el host de entrada.

Eso se arreglará editando el mismo fichero config.inc.php en la linea :

$ cfg ['Servers'][$ i ]['host'] = ' localhost '; // MySQL hostname

Sustituyendo ‘ localhost ’ por el nombre de de la máquina que sirve los datos mysql .

Accediendo desde la consola ‘ mysql >’

Bien, ya hemos creado usuarios, hemos dado un password al suario root hemo configurado que el usuario root sea también accedido

desde cualquier máquina (%).

Ahora queremos acceder a estos usuarios desde la consola mediante el comado que cito a continuación no nos sirve:

#mysql -u root -p Ya que desde el momento que le hemos especificado que ‘cualquier cliente’ puede acceder a sus datos mediante el cliente ODBC que necesitemos, deberemos decirle desde donde nos conectamos para acceder al promt de mysql , que quiere decir que deberemos acceder así:

#mysql --user={usuario} --password={password} -h {host} {base de datos} {base de datos} es opcional.

Exportando datos de access a MySQL :

Este es el punto más funcional de todos.

Supongamos que tenemos una bbdd en Microsoft Access, la queremos migrar a MySQL , bien;

Primero creamos una base de datos con phpMyAdmin :

mysql> create database prueba ;
Query OK, 1 row affected (0.00 sec)
Una vez generada esta y habiendo dado los permisos, el usuario, etc. Procedemos al siguiente paso.

Para trabajar desde Windows, necesitaremos el software que nos permita generar la conexión mediente ODBC a linux , más concretamente a MySQL , ese soft se llama MyODBC y lo podéis bajar, gratuitamente desde http://dev.mysql.com/downloads/connector/odbc/3.51.html.

Una vez que hayas bajado los drivers de MyODBC del sitio de MySQL desempaquétalos e instálalos usando el programa setup.exe incluido.

Cconcluido el proceso de instalación abre el Panel de Control de ODBC de windows .

El él nos aparecerá un cuadro de diálogo:

Se debe haber agregado la dns de usuario ‘myodbc3- test’, ahora la configuramos, picando en ‘configurar’.

Esto nos serviria para IMPORTAR

Para exportar debemos definir una conexión desde el siguiente cuadro de dialogo:

Y agregamos MySQL.dns (por ejemplo )

Rellenamos los campos pertinentes que hayamos definido en MySQL .

Arbimos la bbdd que nos interes exportal a MySQL

Ahora seleccionamos exportar:

En el menú ‘Exportar’ seleccionamos ‘Bases de datos ODBC’ y nos preguntará:

Aquí decidimos como se va a llamar la tabla que exportamos.

Actoseguido nos preguntará un origen de datos de archivo y una asociación hacia ‘quien va a ser el ODBC’:

Aquí hay un dns definido que se llama lista, pero clickando en ‘Nuevo’ podemos agregar otro (de la misma manera que antes hemos agregado MySQL.dns ).

Seleccionamos el dns ke damos a ‘Aceptar’ y zas … ya lo tenemos en MySQL .

Eso es todo.

Leave a Reply

Your email address will not be published.