Acceder remotamente a MySQL en Debian Lenny [Solucionado]
Bueno señores, sucede que monté un servidor web usando el Xampp correctamente instalado en un desktop con Debian Lenny, por ahora los módulos funcionan bien (apache responde, php funciona, mysql funciona y proftpd funciona pero hace falta configurarlo) ahora bien, necesito tener acceso remoto a las bases de datos del equipo, ya creé un usuario que pueda acceder desde cualquier host y le di los permisos, no obstante, cuando intento conectarme no funciona (estoy usando el Altova DatabaseSpy 2009).
El primer diágnostico sería que el servidor respondiera y eso funciona, hasta tengo conexión vía SSH con el servidor.
El segundo diágnostico que hice fue el de verificar que el puerto 3306 (que usa MySQL) estuviera abierto y en escucha, pero cuando uso el comando netstat -an | grep LISTEN lo único referente a MySQL que aparece es:
unix 2 [ ACC ] STREAM LISTENING 138771
/opt/lampp/var/mysql/mysql.sockSerá que mysql está escuchando por ese puerto?
Otra cosa, en todos los foros me aparece que descomente la siguiente línea:
# bind_addressNo obstante, en ningun lado aparece, estoy usando mysql 5.1.37 en una instalación de Lampp y ni en el archivo /etc/mysql/my.cnf ni en /opt/lampp/etc/my.cnf aparece dicha línea.
O será que me falta algo más por diagnosticar?!?
saludos!!!
- Inicie sesión o regístrese para enviar comentarios
- 7362 lecturas


En una instalación básica mysql está a la escucha solo en la interfaz loopback.
netstat -ntulp te mostrará que solo está a la escucha en 127.0.0.1:3306
En /etc/mysql/my.cnf, en la seccion mysqld debieras ver algo como:
bind-address = 127.0.0.1Reemplaza el 127.0.0.1 por la dirección de la tarjeta de red a través de la cual deseas acceder y reinicia el servicio.
Saludos
Dos comentarios.
1. Creo que es mejor añadir un fichero .cnf dentro del directorio conf.d del directorio de configuración de mysql
/etc/mysql/conf.d
algo como
myconfig.cnf
y allí hacer las modificaciones de configuración que consideres oportunas como es el caso del parámetro bind-address, tal como te sugiere Pato Silva.
Si quieres que mysql escuche en todas las interfaces loop y eth usa bind-address=0.0.0.0
Las configuraciones que hagas en /etc/mysql/conf.d/myconfig.cnf sobre-escribirán las del my.cnf, si en un momento dado en el futuro el paquete mysql de debian necesita cambiar algo en el fichero my.cnf no perderás tus configuraciones personalizadas. (Aunque el debconf te preguntara que hacer).
2. Sugiero que no abras mysql al exterior, mejor puedes usar ssh y hacer un túnel de forma que todo el trafico de la basa de datos este protegido por el túnel ssh y las conexiones la hagan los usuarios como usuarios locales.
Si usan la consola puede abrir una sesión remota con ssh y luego usar el cliente mysql local y si no usan la consola, herramientas como navicat o mysql-workbench soportan conexiones a través de un conexión ssh.
Se supone que hay que abrir el puerto para que MySQL acepte peticiones fuera de la red, además de eso tienes que agregar un registro en la tabla host en la que indiques que PC se puede conectar.
Se supone que hay que abrir el puerto para que MySQL acepte peticiones fuera de la red, además de eso tienes que agregar un registro en la tabla host en la que indiques que PC se puede conectar.
En la tabla host?
Otra cosa, en el post puse que no me aparece la línea bind-address, la agrego manualmente al archivo de configuración?
Si en la tabla host de la Base de datos de MySQL que se llama MySQL, en esa base de datos se almacena los usuarios, las bases de datos del servidor, los usuarios con los permisos etc etc... una de esas tablas es para definir desde que PCs se permite conectarse al servidor y que privilegios tendrán dichos PCs.
Edito
En Debian no tengo instalado MySQL, pero si lo tengo en Kubuntu, y el archivo de configuración donde se encuentra el parámetro bind-address es en /etc/mysql/my.cnf no se si aplique igual para Debian en tu caso.
En Debian no tengo instalado MySQL, pero si lo tengo en Kubuntu, y el archivo de configuración donde se encuentra el parámetro bind-address es en /etc/mysql/my.cnf no se si aplique igual para Debian en tu caso.
Si aplica, como he dicho previamente las configuraciones estan en /etc/mysql/my.cnf pero también existe el directorio /etc/mysql/conf.d/ que es donde sugiero que se cree un fichero .cnf donde se escriban las parejas parámetro = valor que sobrescriban los valores predeterminados y de esa forma no hacer modificaciones directamente en el fichero my.cnf que es del paquete mysql
Solo comentario casual, esas rutas que comentan son para instalaciones "normales" (aunque normal no sea el termino que estoy buscando). El comenta que realizo su instalación con XAMPP y por la ruta que indica el socket de escucha, el debería buscar esas ruta no en /etc, sino en /opt/lampp.
Saludos
El tiene razón, si no instalo desde repositorios la ruta de los archivos no es la que habíamos indicado.
Bueno, logré encontrar el archivo de configuración indicado así como la línea "bind-address" (creo que estaba como ciego al principio, en fin...), pero, ahora la cuestión es que igualmente no se conecta de forma externa.
En mi red, la NIC tiene como IP fija la 192.168.0.20 y me conecto remotamente usando la ip 201.xxx.xxx.xxx, será que tengo que poner la IP fija publica en la linea "bind-address"?
EDITO: para mayor información, quiero abrir la base de datos para acceso externo porques estoy desarrollando una aplicación que trabajara a nivel de escritorio y necesita conectarse con la base de datos de forma remota, más que para administración (ya que para eso está el phpMyAdmin). Ahh, y de cliente estoy usando SQLyog
Hola, no se si te estas conectando a mysql con el usuario root, ya que generalmente no te puedes conectar con este usuario sino que debes crear otro y darle los privilegios necesarios. por lo menos mysql administrator no lo permite a menos que te estes conectando desde localhost, pero desde fuera no.