Conéctese a MySQL en AWS desde una máquina local


Estoy tratando de configurar un entorno de desarrollo en mi máquina local que acceda a una base de datos MySQL en AWS, pero sigo recibiendo un mensaje de "No se puede conectar".

mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');

También comenté la dirección bind en el mi.cnf, y concede permisos a la dirección IP que se está conectando.

¿Alguien ha conseguido que esto funcione?

Author: Jeffrey Hunter, 2011-12-01

5 answers

Supongo que esto es firewalled por Amazon, intente usar un túnel SSH:

Http://blogs.oracle.com/divyen/entry/connecting_mysql_server_on_amazon

Nota: No abra MySQL al internet público, ni siquiera cuando utilice el filtrado de IP. Los túneles SSH son mucho más seguros. Lo mejor de todo: El túnel podría ser accesible con localhost:3306 en su máquina, sin necesidad de cambiar la configuración : )

 12
Author: Stephan B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-01 15:46:53

Mi experiencia en agosto de 2013 fue la siguiente para una instancia de RDS creada a través de Elastic Beanstalk.

0) Suponiendo que la instancia RDS ya ha sido creada
1) Inicie sesión en la consola de administración: https://console.aws.amazon.com/console/home
2) Seleccione Servicios - >VPC
3) Seleccionar Grupos de seguridad (a la izquierda)
4) Seleccione el grupo cuya descripción dice " Grupo de seguridad para la base de datos RDS..."
5) En el panel Grupo de seguridad seleccionado en la parte inferior de la página, elija"Inbound"
6) Seleccione MySQL como regla.
7) Escriba la dirección ip de mi máquina local, por ejemplo, 145.23.32.15/32
8) Haga clic en Agregar regla y Aplicar Cambios de Regla

Después de hacer esto pude conectarme a la base de datos usando mysql desde mi máquina local.

A) Desde la consola de administración, seleccione Servicios - >RDS
b) Haga clic en Instancias de base de datos (solo tengo una) y seleccione "Ir a la página de detalles" para la instancia requerida
c) Obtener Host y Puerto desde el endpoint
d) De a sesión de terminal hacer algo como: mysql host host blah.blah.blah.us-west-2.rds.amazonaws.com port port 3306-u my-user-name-p

 32
Author: mikemay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-18 06:45:35

Si utiliza MySQL en AWS a través de una instancia de RDS, debe agregar la dirección IP desde la que desea conectarse a los "Grupos de seguridad de bases de datos". Para ello, vaya a la consola de administración de AWS y seleccione RDS.
1. Seleccione "Grupos de seguridad de la base de datos" en el panel izquierdo
2. Seleccione "default"
3. Seleccione "CIDR / IP" en el cuadro de selección e ingrese la dirección IP pública de su estación de trabajo. Ejemplo:
23.234.192.123 /32 (no olvide el / 32 para una sola ip)
4. Haga clic en " Añadir"
5. Espera un poco. minutos para que entre en vigor y luego conecte su cliente MySQL.

Esto solo se aplica a instancias RDS, si está utilizando MySQL instalado en una instancia EC2, las instrucciones son las mismas que acceder a MySQL desde cualquier máquina remota.

 29
Author: Cbox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-01 15:52:40

He estado usando MySQL Workbench http://www.mysql.com/products/workbench/ con RDS y funciona muy bien. Muy fácil de crear y guardar una nueva instancia de servicio de base de datos. Haga clic en "Nueva instancia de servidor" en "Administración del servidor" y siga las instrucciones. Deberá introducir la información proporcionada en la página web de AWS RDS para esa instancia (por ejemplo, su punto final).

NOTA: Para que realmente se conecte, DEBE agregar su dirección IP en los "Grupos de seguridad de la base de datos." El enlace está en la columna de la izquierda, que se titula " Navegación."Utilizo la opción" CIDR / IP " (la otra es EC2 Security Group). Asegúrese de incluir un "/ # # " después de la IP, como el "/32" que usan en el ejemplo (lo verá en la página). En unos segundos, la dirección IP debe ser autorizada.

Después de eso, vuelva a MySQL Workbench y complete el Nuevo proceso de creación de Instancias de Servidor.

Para usar la conexión, su código podría verse algo como esto (que extractos de mi código Java):

String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
 1
Author: chrisco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-09 15:27:44

Estoy en una máquina con Windows 7, y tuve que hacer los siguientes 3 cambios para poder conectarme a AWS RDB.

  1. Actualización del grupo de seguridad de VPC en la consola de AWS (similar a lo que mikemay tiene anteriormente)

    • De https://console.aws.amazon.com , haga clic en Servicios (arriba a la izquierda) y elija VPC.
    • A continuación, seleccione Grupos de seguridad
    • Haga clic en el Grupo de seguridad que tiene la descripción "Grupo de seguridad para la base de datos RDS..."
    • En la pestaña" Inbound", elija "MYSQL" en el menú desplegable Crear una nueva regla.
    • Agregue su dirección IP en formato CIDR y haga clic en Agregar regla.
    • Haga clic en Aplicar cambios de reglas.
  2. My.actualización cnf en la configuración local de MySQL

    • Cambie " bind-address = 127.0.0.1 "a"bind-address = 0.0.0.0"
    • Comment out "skip-networking"
  3. Desactive el Firewall de Windows

    • Vaya al Panel de control/Sistema y Seguridad/Firewall de Windows y apague Firewall de Windows.

Después de estos cambios, soy capaz de conectar a través de ambos

  • MySQL WorkBench usando Database - > Conectarse a Database
  • Símbolo del sistema con

    mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
    
 1
Author: user3078359,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-06 04:48:31