Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
MySQL No Permite Conexiones Remotas [solucionado]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje MySQL No Permite Conexiones Remotas [solucionado] 
 
He probado a asignar permisos a un usuario creado en mysql llamado "dmzuser", este usuario puede conectarse desde cualquier host % como desde su ip 192.168.86.2... El problema lo tengo que incluso he editado los archivos my.cnf y comentar con "#"  las lineas donde aparecen: #skip-networking y #bind-address pero sin éxito. También he reinciado los servicios pero sin éxito.e incluso reinicado la maquina y firewall está deshabilitado.

En cambio si me conecto con el usuario localmente en la misma maquina si que me puedo conectar y sin problemas, pero desde otro equipo de la misma red es imposible.

El firewall está deshabilitado tanto en el servidor mysql como con el ordenador qu me quiero conectar, e incluso desde el otro equipo me puedo conectar por SSH sin problemas

¿Alguien se le ocurre que más puedo mirar?
 




===================
Saludos / Best Regards

Pedro Aguilar

http://edrossuse.blogspot.com
Desarrollador de LNXGEST
 
última edición por estrella_de_galicia el Martes, 18 Enero 2011, 10:07; editado 1 vez 
estrella_de_galicia - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: MySQL No Permite Conexiones Remotas 
 
Hola
Empieza por entrar en la consola y allí escribir
mysql -u root -p
te pedirá la clave de root. Se la das y con eso estas dentro de mysql

Ahora vamos a decirle que queremos usar la base "mysql" (Normalmente usarás otra claro pero ahroa nos interesan los permisos que están en la base de datos mysql)
use mysql

Ahora vamos a decirle que liste usuarios y host. Le decimos que liste unos campos de la tabla user. Los comandos siempre acabados en punto y coma.
select user,host from user;
Ahí vemos que usuarios (identificados por usuario.host pueden acceder a mysql

Ahora vamos a decirle que liste los usuarios y sus bases de datos
select user,host,db from db;
Esa lista debería coincidir con la anterior en usuario y host. Cuando entra un usuario (la lista anterior) se le otorga el acceso a las bases de datos que le correspondan aquí.

El usuario 'usuario'@'%' y el usuario 'usuario'@'localhost' son distintos. No se que jugarme que en db y user tienes inconsistencias o que no tiene acceso a la base de daos que quieres o algo así.

También habría que ver que permisos tienes en las bases de datos. Por ejemplo el permiso select_priv es permiso de lectura pero no escritura. El permiso update_priv es permiso para updatear, el permiso insert_priv es permiso para insertar, ... En la tabla user el usuario@host tiene detallados sus permisos generales. En la tabla db tiene detallados sus  permisos específicos para una determinada base de datos.

Tanto si no tienes derecho a entrar como si lo tienes a entrar pero no tienes derecho a usar esa base de datos como si tienes ese derecho pero no tienes derecho de select o update o lo que quieras usar te rechazará.

Revisa los permisos

Por último si no estas conforme con el usuario y host que tienes en user haz esto
update user set host='%' where user='tu_usuario' and host='el_host_a_cambiar';
flush privileges;
 
 



 
última edición por soplo el Lunes, 17 Enero 2011, 15:45; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: MySQL No Permite Conexiones Remotas 
 
soplo escribió: 


select user,host from user;


Código: [Descargar] [Ocultar]
  1. +---------+------------+  
  2. | user    | host       |  
  3. +---------+------------+  
  4. | dmzuser | %          |  
  5. | root    | 127.0.0.1  |  
  6. |         | linux-hema |  
  7. | root    | linux-hema |  
  8. |         | localhost  |  
  9. | root    | localhost  |  
  10. +---------+------------+ 


soplo escribió: 

select user,host,db from db;

Código: [Descargar] [Ocultar]
  1. +---------+------+---------+  
  2. | user    | host | db      |  
  3. +---------+------+---------+  
  4. | dmzuser | %    | iconian |  
  5. |         | %    | test    |  
  6. |         | %    | test\_% |  
  7. +---------+------+---------+  
  8.  



el usuario con el que quiero acceder es dmzuser que por lo que veo tiene permitido con % cualquier host, ¿no?

Tambien he ejecutado el siguiente comando para ver si se estaba ejecutando...
Citar:
SRVAPP1:/home/administrator # netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      2100/mysqld


y aqui adjunto el ficherito my.cnf

Código: [Descargar] [Ocultar]
  1.  
  2. # Example MySQL config file for medium systems.  
  3. #  
  4. # This is for a system with little memory (32M - 64M) where MySQL plays  
  5. # an important part, or systems up to 128M where MySQL is used together with  
  6. # other programs (such as a web server)  
  7. #  
  8. # You can copy this file to  
  9. # /etc/my.cnf to set global options,  
  10. # mysql-data-dir/my.cnf to set server-specific options (in this  
  11. # installation this directory is /var/lib/mysql) or  
  12. # ~/.my.cnf to set user-specific options.  
  13. #  
  14. # In this file, you can use all long options that a program supports.  
  15. # If you want to know which options a program supports, run the program  
  16. # with the "--help" option.  
  17.  
  18. # The following options will be passed to all MySQL clients  
  19. [client]  
  20. #password    = your_password  
  21. port        = 3306  
  22. socket        = /var/run/mysql/mysql.sock  
  23.  
  24. # Here follows entries for some specific programs  
  25.  
  26. # The MySQL server  
  27. [mysqld]  
  28. port        = 3306  
  29. socket        = /var/run/mysql/mysql.sock  
  30. # Change following line if you want to store your database elsewhere  
  31. datadir    = /var/lib/mysql  
  32. skip-locking  
  33. key_buffer_size = 16M  
  34. max_allowed_packet = 1M  
  35. table_open_cache = 64  
  36. sort_buffer_size = 512K  
  37. net_buffer_length = 8K  
  38. read_buffer_size = 256K  
  39. read_rnd_buffer_size = 512K  
  40. myisam_sort_buffer_size = 8M  
  41.  
  42. # Don't listen on a TCP/IP port at all. This can be a security enhancement,  
  43. # if all processes that need to connect to mysqld run on the same host.  
  44. # All interaction with mysqld must be made via Unix sockets or named pipes.  
  45. # Note that using this option without enabling named pipes on Windows  
  46. # (via the "enable-named-pipe" option) will render mysqld useless!  
  47. #  
  48. #skip-networking  
  49.  
  50. # Replication Master Server (default)  
  51. # binary logging is required for replication  
  52. log-bin=mysql-bin  
  53.  
  54. # binary logging format - mixed recommended  
  55. binlog_format=mixed  
  56.  
  57. # required unique id between 1 and 2^32 - 1  
  58. # defaults to 1 if master-host is not set  
  59. # but will not function as a master if omitted  
  60. server-id    = 1  
  61.  
  62. # Replication Slave (comment out master section to use this)  
  63. #  
  64. # To configure this host as a replication slave, you can choose between  
  65. # two methods :  
  66. #  
  67. # 1) Use the CHANGE MASTER TO command (fully described in our manual) -  
  68. #    the syntax is:  
  69. #  
  70. #    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,  
  71. #    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;  
  72. #  
  73. #    where you replace <host>, <user>, <password> by quoted strings and  
  74. #    <port> by the master's port number (3306 by default).  
  75. #  
  76. #    Example:  
  77. #  
  78. #    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,  
  79. #    MASTER_USER='joe', MASTER_PASSWORD='secret';  
  80. #  
  81. # OR  
  82. #  
  83. # 2) Set the variables below. However, in case you choose this method, then  
  84. #    start replication for the first time (even unsuccessfully, for example  
  85. #    if you mistyped the password in master-password and the slave fails to  
  86. #    connect), the slave will create a master.info file, and any later  
  87. #    change in this file to the variables' values below will be ignored and  
  88. #    overridden by the content of the master.info file, unless you shutdown  
  89. #    the slave server, delete master.info and restart the slaver server.  
  90. #    For that reason, you may want to leave the lines below untouched  
  91. #    (commented) and instead use CHANGE MASTER TO (see above)  
  92. #  
  93. # required unique id between 2 and 2^32 - 1  
  94. # (and different from the master)  
  95. # defaults to 2 if master-host is set  
  96. # but will not function as a slave if omitted  
  97. #server-id       = 2  
  98. #  
  99. # The replication master for this slave - required  
  100. #master-host     =   <hostname>  
  101. #  
  102. # The username the slave will use for authentication when connecting  
  103. # to the master - required  
  104. #master-user     =   <username>  
  105. #  
  106. # The password the slave will authenticate with when connecting to  
  107. # the master - required  
  108. #master-password =   <password>  
  109. #  
  110. # The port the master is listening on.  
  111. # optional - defaults to 3306  
  112. #master-port     =  <port>  
  113. #  
  114. # binary logging - not required for slaves, but recommended  
  115. #log-bin=mysql-bin  
  116.  
  117. # Point the following paths to different dedicated disks  
  118. #tmpdir        = /tmp/          
  119. #log-update     = /path-to-dedicated-directory/hostname  
  120.  
  121. # Uncomment the following if you are using InnoDB tables  
  122. #innodb_data_home_dir = /var/lib/mysql/  
  123. #innodb_data_file_path = ibdata1:10M:autoextend  
  124. #innodb_log_group_home_dir = /var/lib/mysql/  
  125. # You can set .._buffer_pool_size up to 50 - 80 %  
  126. # of RAM but beware of setting memory usage too high  
  127. #innodb_buffer_pool_size = 16M  
  128. #innodb_additional_mem_pool_size = 2M  
  129. # Set .._log_file_size to 25 % of buffer pool size  
  130. #innodb_log_file_size = 5M  
  131. #innodb_log_buffer_size = 8M  
  132. #innodb_flush_log_at_trx_commit = 1  
  133. #innodb_lock_wait_timeout = 50  
  134.  
  135. # The safe_mysqld script  
  136. [safe_mysqld]  
  137. log-error    = /var/log/mysql/mysqld.log  
  138. socket        = /var/run/mysql/mysql.sock  
  139.  
  140. [mysqldump]  
  141. socket        = /var/run/mysql/mysql.sock  
  142. quick  
  143. max_allowed_packet = 16M  
  144.  
  145. [mysql]  
  146. no-auto-rehash  
  147. # Remove the next comment character if you are not familiar with SQL  
  148. #safe-updates  
  149.  
  150. [myisamchk]  
  151. key_buffer_size = 20M  
  152. sort_buffer_size = 20M  
  153. read_buffer = 2M  
  154. write_buffer = 2M  
  155.  
  156. [mysqlhotcopy]  
  157. interactive-timeout  
  158.  
  159. [mysqld_multi]  
  160. mysqld     = /usr/bin/mysqld_safe  
  161. mysqladmin = /usr/bin/mysqladmin  
  162. log        = /var/log/mysqld_multi.log  
  163. # user       = multi_admin  
  164. # password   = secret  
  165.  
  166. # If you want to use mysqld_multi uncomment 1 or more mysqld sections  
  167. # below or add your own ones.  
  168.  
  169. # WARNING  
  170. # --------  
  171. # If you uncomment mysqld1 than make absolutely sure, that database mysql,  
  172. # configured above, is not started.  This may result in corrupted data!  
  173. # [mysqld1]  
  174. # port       = 3306  
  175. # datadir    = /var/lib/mysql  
  176. # pid-file   = /var/lib/mysql/mysqld.pid  
  177. # socket     = /var/lib/mysql/mysql.sock  
  178. # user       = mysql  
  179.  
  180. # [mysqld2]  
  181. # port       = 3307  
  182. # datadir    = /var/lib/mysql-databases/mysqld2  
  183. # pid-file   = /var/lib/mysql-databases/mysqld2/mysql.pid  
  184. # socket     = /var/lib/mysql-databases/mysqld2/mysql.sock  
  185. # user       = mysql  
  186.  
  187. # [mysqld3]  
  188. # port       = 3308  
  189. # datadir    = /var/lib/mysql-databases/mysqld3  
  190. # pid-file   = /var/lib/mysql-databases/mysqld3/mysql.pid  
  191. # socket     = /var/lib/mysql-databases/mysqld3/mysql.sock  
  192. # user       = mysql  
  193.  
  194. # [mysqld6]  
  195. # port       = 3309  
  196. # datadir    = /var/lib/mysql-databases/mysqld6  
  197. # pid-file   = /var/lib/mysql-databases/mysqld6/mysql.pid  
  198. # socket     = /var/lib/mysql-databases/mysqld6/mysql.sock  
  199. # user       = mysql  
  200.  
  201. #Port number to use for connections.  
  202. port=3306  
  203.  
  204.  

 




===================
Saludos / Best Regards

Pedro Aguilar

http://edrossuse.blogspot.com
Desarrollador de LNXGEST
 
última edición por estrella_de_galicia el Lunes, 17 Enero 2011, 21:22; editado 1 vez 
estrella_de_galicia - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: MySQL No Permite Conexiones Remotas 
 
olvídate del my.cnf. Se puede tocar para que no lo permita, pero por defecto lo permite así que no lo tienes que tocar.

Con lo que veo en la tabla user el usuario dmzuser puede entrar a mysql desde cualquier host.

Con lo que veo en la tabla db el usuario dmzuser tiene acceso únicamente a la base iconian. Hasta ahí bien

Habría que saber si el error te da al hacer la conexión con ese usuario en esa base de datos (en cuyo caso podría ser la clave) o bien si te da al obtener un result en cuyo caso serán permisos a nivel de fila/columna que son los de priv_select, priv_insert, priv_update, ..., etc. Si intentas hacer un insert pero no tienes permiso para ello tienes error.

También puede haber permisos a nivel de columna pero dudo que te hayas metido en eso así que no entro en ello por no enredar.

Para saber si es la clave puedes entrar por la shell a ver que pasa
mysql -u dmzuser -p
meter la clave y luego decirle
use iconian;
si te deja entonces
select * from tabla_x;

Yo creo que no podrás hacer eso en la consola. Si puedes hacerlo yo comprobarái el mapeo del puerto mysql en el router a donde está mapeado y si es una red local poniendo usuario@ip_de_maquina_mysql.

Puede ser que si el problema es únicamente remoto lo que pase es que tu petición no llega a mysql.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: MySQL No Permite Conexiones Remotas 
 
¡Buf! Menos mal que lo he averiguado. Resulta que en la VLAN de la DMZ me habia equivocado de puerto y por eso no me conectaba ni a la de 3.

Muchas grácias por vuestra ayuda, que sin duda no tiene precio.
 




===================
Saludos / Best Regards

Pedro Aguilar

http://edrossuse.blogspot.com
Desarrollador de LNXGEST
 
estrella_de_galicia - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Conexiones Remotas Cortadas Por El Servido... shordi Bases de Datos 2 Jueves, 25 Marzo 2010, 00:01 Ver último mensaje
Cubel
No hay nuevos mensajes ¿Alguien Ha Probado La Variable De Entorn... shordi General 16 Miercoles, 28 Abril 2010, 17:16 Ver último mensaje
shordi
No hay nuevos mensajes [solucionado] No Puedo Conectar A MySQL estrella_de_galicia Bases de Datos 8 Domingo, 20 Junio 2010, 02:46 Ver último mensaje
codificador
No hay nuevos mensajes Optimizar Conexiones BBDD Mysql fua Bases de Datos 5 Miercoles, 20 Noviembre 2013, 15:47 Ver último mensaje
jguardon
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron