1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

¿Cómo crear una base de datos MySQL remota?

Tema en 'Asuntos Técnicos' iniciado por Adsl5mb, 14 Jun 2009.

  1. Adsl5mb

    Adsl5mb Usuario activo

    Hola ComunidadHosting :-D

    Estoy necesitando de información sobre como se puede hacer para correr una base de datos remota de MySQL 5.

    Partiendo desde que ya se tiene el MySQL 5 corriendo y funcionando con la base de datos ¿qué pasos se deben de realizar para que el servidor MySQL permita las conexiones remotas?

    Muchas Gracias
     
  2.  
  3. turcu

    turcu Administrador Miembro del Staff Administrador CH

    Hola Adsl5mb
    Lo primero que debes hacer es habilitar el puerto "3306" del mysql, o el que estes usando en caso de que lo hayas cambiado. Si estas detras de algun firewall o algun router, vas a tener que verificar que no te este filtrando este puerto. De ser asi, tendras que habilitarlo.
    Una vez que tienes el puerto abierto, ahora solo debes crear el usuario, pero debes indicar que el usuario es un usuario remoto (que no sea un usuario que accede en el equipo local).
    Acerca de como crear el usuario, indicando que accede desde cualquier ubicacion de red, o desde una ubicacion de red especifica, te recomiendo que mires el link en la pagina de mysql: http://dev.mysql.com/doc/refman/5.0/es/adding-users.html.
    Tene en cuenta, que no es recomendable dejar abiertos puertos del servidor, ya que disminuye la seguridad del mismo. Por eso, por ejemplo en un servicio de hosting, nunca (puede existir una excepcion) te van a dar acceso a las bases de datos, y generalmente te dan una herramienta como por ejemplo el phpmyadmin para que la manipules de forma local.
    Ademas te recomiendo dar soporte ssl al servidor sql, ya que tene en cuenta que en caso contrario, toda la informacion que negocies con el servidor, estara descubierta.
    Espero que te sirva de ayuda,
    saludos
     
    Última edición: 15 Jun 2009
  4. Adsl5mb

    Adsl5mb Usuario activo

    Gracias por la ayuda turcu, más o menos todo lo de la conexión lo tengo entendido ahora, lei el link que me pasaste y en un comando dice:
    Ese es el comando para darle permisos para que ese usuario pueda acceder remotamente?
     
  5. turcu

    turcu Administrador Miembro del Staff Administrador CH

    Claro,
    el *.* --> Indica que tiene acceso a todos los elementos de la bd (bases de datos y tablas)
    y el 'monty'@'%' indica que el usuario monty, puede acceder desde cualquier ubicacion.
    el @ indica desde donde puede acceder el usuario.
    por ejemplo: 'usuario'@'localhost' o 'usuario'@'127.0.0.1' indica que solo accede de forma local, 'usuario'@'###.###.###.###' indica que el usuario accede desde la direccion de ip que indicas. En el caso del ejemplo, el caracter % actua como comodin, indicando que accede desde cualquier lado.
    Y por ultimo, GRANT indica que le das todos los privilegios. Entonces el usuario que creas, va a poder crear bases de datos, tablas, modificar ,ejecutar, etc.

    Saludos
     
  6. Adsl5mb

    Adsl5mb Usuario activo

    Gracias por tu respuesta, ya está todo perfecto, una última consulta sobre este tema, existe alguna forma para poder optimizar aún más para hacer que responda más rápido MySQL?, o sea desde el aspecto de configuraciones en el my.cnf o del sistema.
     
  7. turcu

    turcu Administrador Miembro del Staff Administrador CH

    mmmm... ya es mucho, al menos para mi. nunca me ha surgido tal necesidad, ni me he puesto a investigar del tema. Hay un articulo en ingles, en donde toca unos cuantos parametros del my.cnf y explica algo:
    http://www.debianhelp.co.uk/mysqlperformance.htm
    y en ultima instancia, googlea un poco.
    Lamento no ser de ayuda en esto,

    saludos :aprueba:
     
  8. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Punto importante acerca de hacer el grant de esta manera:

    CODE, HTML o PHP Insertado:
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    -> IDENTIFIED BY 'some_pass' WITH GRANT OPTION; 

    Como bien comentó Turcu, se tiene acceso a TODAS las bases de datos, esto puede ser un potencial riesgo de seguridad si ganan acceso, todas tus bases de datos estarían comprometidas. Mejor es usarlo de esta manera:

    CODE, HTML o PHP Insertado:
    mysql> GRANT ALL PRIVILEGES ON base_de_datos.* TO 'monty'@'%'
    -> IDENTIFIED BY 'some_pass' WITH GRANT OPTION; 
    Claro, es más cómodo manejar un usuario para todas las bases, pero corres más riesgos. Lo ideal es un usuario con accesos limitados a cada bd que usa.

    Sobre la optimización para que responda más rápido, las variables a tocar son muchas y dependen del uso que tendrá la base de datos, aunque también hay que tener en cuenta que cuanto mejor hagas la programación de las consultas, mejor irá.

    Enlaces de ComunidadHosting:

    http://www.comunidadhosting.com/servidores-dedicados-y-vps/6470-optimizar-mysql.html
    http://www.comunidadhosting.com/asu...y-configuracion/6621-me-ayudan-con-mysql.html

    Enlaces externos:

    http://dev.mysql.com/doc/refman/5.0/en/optimizing-the-server.html
    http://www.ibm.com/developerworks/library/l-tune-lamp-3.html
    http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/

    Espero te sirva.

    Saludos,
     
    Última edición: 17 Jun 2009
  9. turcu

    turcu Administrador Miembro del Staff Administrador CH

    Coincido 100% con WebTech. :aprueba:
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·