none
Permitir Conexión Remota en MySQL RRS feed

  • Pregunta

  • tengo un pequeño sistema de ventas. 

     

    Lo que intento es: Permitir Conexión Remota en MySQL, es decir que mi aplicación se ejecute desde dos equipos, pero para que esto funcione debo Permitir Conexión Remota en MySQL.

    Estoy haciendo estos pasos:

    1. Desde el equipo donde esta instalado mysql: ejecuto lo siguiente: mysql command line client

    2) escribo la contraseña

    3)  edito el siguiente comando: 

    $ gedit /etc/mysql/my.cnf

    Debería salir:  bind-address = 127.0.0.1 y lo cambiamos por bind-address = 0.0.0.0.

    el problema es que no sale nada de: bind-address

    por favor tengo varios días en esto y encuentro la solución. 
    • Editado EliannyRD lunes, 17 de julio de 2017 0:26
    lunes, 17 de julio de 2017 0:24

Respuestas

  • Buenas,

    Abre el workbench en el equipo en el que SI te puedes conectar.

    En el panel de la izquierda, busca "Users and Privileges":

    Dentro de esta opcion, te sale una ventana:

    Fíjate en los subrayados, el % en la columna "From Host" indica que ese usuario puede conectarse desde cualquier lugar. Verifica que el usuario desde el que intentas conectarte remotamente tiene % en la columna "From Host".

    También te recuerdo mi sugerencia anterior, crea un usuario nuevo en el que solo asignes los permisos que sean necesarios para la ejecución del programa, y no uses el usuario root.

    Nos comentas como te ha ido!

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    • Editado Jorge TurradoMVP lunes, 17 de julio de 2017 18:29
    • Marcado como respuesta EliannyRD martes, 18 de julio de 2017 20:09
    lunes, 17 de julio de 2017 18:18
  • Vale,  estamos cerca!! 

    Tienes has puesto el % en from host? 

    Me refiero en user and privileges desde el workbench. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    • Editado Jorge TurradoMVP viernes, 21 de julio de 2017 15:21
    • Marcado como respuesta EliannyRD viernes, 21 de julio de 2017 19:38
    viernes, 21 de julio de 2017 15:20
  • Para llegar al paso de bind-address,  tienes que seguir los pasos que tu mismo has puesto en la pregunta,  y ya que no encuentras bind-address = 127.0.0.1 para cambiarlo,  directamente añade la línea bind-address = 0.0.0.0

    Por otro lado,  comprueba por favor las contraseñas del nuevo usuario por si están mal. Prueba a conectarte mediante tcp standard (he visto en las imágenes que has puesto que usas tcp sobre ssh). 

    Has revisado que el firewall tenga una regla para permitir el tráfico del puerto 3306. Entiendo que si debería tenerla si te conectas por tcp standard,  pero si te conectas por tcp over ssh no tiene por qué. 

    Comentanos tus resultados. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta EliannyRD martes, 18 de julio de 2017 20:08
    martes, 18 de julio de 2017 4:37

Todas las respuestas

  • Hola 

    Revisa este manual MySQL Workbench configurar conexión remota

    Saludos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    lunes, 17 de julio de 2017 2:02
  • Hola, en el servidor de MySql, ejecuta este comando:

    GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "tu_password_root";

    lunes, 17 de julio de 2017 4:19
  • Gracias a todos

    hice los pasos del manual de: Pedro Ávila  y sale este error, cuando presiono clic en tex Conection 

    Si lo hago por el otro método me sale este error: 

    • Editado EliannyRD lunes, 17 de julio de 2017 12:17
    lunes, 17 de julio de 2017 12:14
  • Voy a hacer la pregunta más obvia,  pero por si acaso,  en el ámbito del usuario root has añadido %,  quiero decir,  en usuarios (conectándose en el equipo local),  si vas a usuarios,  verás varios usuarios root (127.0.0.7,localhost,...) has puesto en alguno % (% significa conexión desde cualquier sitio). 

    El error que te da es que el servidor deniega la conexión(el ser vicio de MySQL,  no el firewall,  si fuera el firewall de daría un er ror de conection timeout), y supongo que el pass esta bien,  así que puede ser eso. 

    De todos modos,  no es recomendable dar acceso a root desde cualquier sitio(ya que tiene todos los privilegios),  lo recomendable es crear un usuario y darle solo los permisos que necesita,  sobre las db que va a usar. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    lunes, 17 de julio de 2017 14:46
  • Gracias por contestar, 

    que me recomiendas los pasos a seguir. 

    lunes, 17 de julio de 2017 15:35
  • Dame media hora y te subo unos pantallazos paso a paso. Usas el mysql workbench no? 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    lunes, 17 de julio de 2017 16:12
  • gracias. 

    uso  el mysql workbench

    lunes, 17 de julio de 2017 18:04
  • Buenas,

    Abre el workbench en el equipo en el que SI te puedes conectar.

    En el panel de la izquierda, busca "Users and Privileges":

    Dentro de esta opcion, te sale una ventana:

    Fíjate en los subrayados, el % en la columna "From Host" indica que ese usuario puede conectarse desde cualquier lugar. Verifica que el usuario desde el que intentas conectarte remotamente tiene % en la columna "From Host".

    También te recuerdo mi sugerencia anterior, crea un usuario nuevo en el que solo asignes los permisos que sean necesarios para la ejecución del programa, y no uses el usuario root.

    Nos comentas como te ha ido!

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    • Editado Jorge TurradoMVP lunes, 17 de julio de 2017 18:29
    • Marcado como respuesta EliannyRD martes, 18 de julio de 2017 20:09
    lunes, 17 de julio de 2017 18:18
  • Gracias 

    Con el  UsuarioRemoto: hasta en el servidor principal sale este error. 


    • Marcado como respuesta EliannyRD martes, 18 de julio de 2017 20:09
    • Desmarcado como respuesta EliannyRD martes, 18 de julio de 2017 20:09
    lunes, 17 de julio de 2017 19:47
  • Buenas,

    Desde el pc que tiene instalado el servicio mysql no puedes conectarte a el usuario nuevo pero si puedes conectarte a root? Es raro la verdad... Comprueba las contraseñas por si acaso.

    Por otro lado, en el config de mysql, tienes que comprobar que este la siguiente linea

    bind-address            = 0.0.0.0
    

    Si no esta, añadela por ahi, para hacer que acepte conexiones desde cualquier punto. Por ultimo, has habilitado el paso del puerto 3306 a través del firewall?

    La verdad que es muy raro que en local, puedas conectarte a root y no al nuevo usuario, comprueba las contraseñas por si acaso, desde la opcion User and Privileges puedes reescrbir la contraseña.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    lunes, 17 de julio de 2017 21:43
  • buenas 

    como llego a esta linea: nunca e podido hacer este paso. 

    por favor describir como llegar a este paso. 

    bind-address            = 0.0.0.0

    es raro, con la cuenta de root local, si se conecta. 

    lunes, 17 de julio de 2017 23:22
  • Para llegar al paso de bind-address,  tienes que seguir los pasos que tu mismo has puesto en la pregunta,  y ya que no encuentras bind-address = 127.0.0.1 para cambiarlo,  directamente añade la línea bind-address = 0.0.0.0

    Por otro lado,  comprueba por favor las contraseñas del nuevo usuario por si están mal. Prueba a conectarte mediante tcp standard (he visto en las imágenes que has puesto que usas tcp sobre ssh). 

    Has revisado que el firewall tenga una regla para permitir el tráfico del puerto 3306. Entiendo que si debería tenerla si te conectas por tcp standard,  pero si te conectas por tcp over ssh no tiene por qué. 

    Comentanos tus resultados. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta EliannyRD martes, 18 de julio de 2017 20:08
    martes, 18 de julio de 2017 4:37
  • Gracias a todos por sus sugerencias, todavía no he podido resolver nada, pero gracias. 
    martes, 18 de julio de 2017 20:08
  • Hola a todos, después de unos días de descanso retome el problema. 

    1) ya hice el usuario remoto

    2) esta es mi cadena de conexión

     Public cadenaConexion As String = "Server=192.168.0.103;Database=Gestor_DataBase; User id=admin;Pwd=Q5FfhZLO3abBfe63"

    3) en el equipo servidor el sistema hecho en vb.net funciona nitido. 

    4) cuando ejecuto el sistema en el equipo cliente (ESTACION-01) ahora muestra este error. 

    creo que ya el problema está casi resuelto, espero en Dios que alguien me pueda ayudar. 

     Saludos cordiales. 
    viernes, 21 de julio de 2017 15:13
  • Vale,  estamos cerca!! 

    Tienes has puesto el % en from host? 

    Me refiero en user and privileges desde el workbench. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    • Editado Jorge TurradoMVP viernes, 21 de julio de 2017 15:21
    • Marcado como respuesta EliannyRD viernes, 21 de julio de 2017 19:38
    viernes, 21 de julio de 2017 15:20
  • Gracias a Dios y todos ustedes, problema resuelto 100x%

    Esto fu lo que hice. 

    1. Instalé por completo mysql: community-5.7.18.1
    2. Instalé appserv-win32-8.6.0
    3. Crear un usuario remoto en: http://localhost/phpMyAdmin/
    4. Le otorgo todos los privilegios a ese usuario. 
    5. Hacer clic en: continuar:
    6. Activar la pestaña base de datos y le selecciono la base de datos a la cual quiere darle acceso.
    7. Hacer clic en: continuar.
    8. Selecciono todos los privilegios, para la base de datos.
    9. Hacer clic en: continuar. 
    10. mi cadena de conexión quedó así: 
    Public cadenaConexion As String = "Server=192.168.0.103;Database=Gestor_DataBase; User id=admin3;Pwd=FOBNvhOikLNpkMTZ"

    192.168.0.103: es la dirección IP: del equipo donde está instaldo MYSQL.

    Hice una regla de Entrada y Regla de salida con estos pasos, luego active el firewall 

    Para abrir un puerto en el Firewall de Windows para el acceso TCP

    1. En el menú Inicio , haga clic en Ejecutar, escriba WF.mscy, a continuación, haga clic en Aceptar.
    2. En la opción Firewall de Windows con seguridad avanzada del panel izquierdo, haga clic con el botón derecho en Reglas de entrada y, luego, haga clic en Nueva regla en el panel de acciones.
    3. En el cuadro de diálogo Tipo de regla , seleccione Puertoy, a continuación, haga clic en Siguiente.
    4. En el cuadro de diálogo Protocolo y puertos , seleccione TCP. Seleccione Puertos locales específicos y escriba el número de puerto de la instancia de Motor de base de datos, por ejemplo, 3306 para la instancia predeterminada. Haga clic en Siguiente.
    5. En el cuadro de diálogo Acción , seleccione Permitir la conexióny, a continuación, haga clic en Siguiente.
    6. En el cuadro de diálogo Perfil , seleccione los perfiles que describan el entorno de conexión del equipo cuando desee conectarse a Motor de base de datosy, a continuación, haga clic en Siguiente.
    7. En el cuadro de diálogo Nombre , escriba un nombre y una descripción para esta regla. Después, haga clic en Finalizar.

    Gracias Dios y todos ustedes mi aplicación se ejecuta perfecto en los dos equipos. 



    • Propuesto como respuesta Pedro Ávila viernes, 21 de julio de 2017 19:41
    • Editado EliannyRD viernes, 21 de julio de 2017 20:47
    viernes, 21 de julio de 2017 19:37
  • hola amigo , estuy viendo lo que hiciste para la conexión remota y to estoy conectando mi aplicación a una base de mysql que tengo en una ciudad y la aplicación cliente lla tengo en una red totalmente diferente, tengo una ip fija en el equipo mysql quisiera saber si esto que hiciste funciona para la conexión que necesito o solamente sirve para una red local...

    agradezco tu respuesta

    domingo, 5 de agosto de 2018 18:40