Я пытаюсь развернуть приложение springboot на экземпляре AWS linux, но все равно получаю следующую ошибку:
2018-04-24 18:15:27.777 INFO 24020 --- [ost-startStop-1]
o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2018-04-24 18:15:28.771 ERROR 24020 --- [main] o.a.tomcat.jdbc.pool.ConnectionPool: Unable to create initial connections of pool.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_161]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_161]
...
2018-04-24 16:58:57.522 WARN 23780 --- [main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource
org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException:
Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Вот как я создал свой файл applications.properties:
#database config
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://****-west-1.rds.amazonaws.com:3306/DevManagementDB
spring.datasource.username=root
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update
Странно то, что я могу подключиться к своей базе данных RDS из этого приложения springboot, когда я запускаю приложение на своем локальном компьютере. Как только я пытаюсь развернуть приложение на экземпляре Linux на AWS, оно терпит неудачу, и я получаю указанные выше ошибки.
да, я убедился
Проверьте активные соединения MySQL, набрав: 'show processlist' в консоли MySQL. И проверьте соединение mysql max в mysql.ini. Какая у вас версия Springboot и MySQL?
MySQL 5.6.39 и весенняя загрузка 1.5.9
как мне войти в консоль mysql?




Я тоже столкнулся с подобной проблемой.
Мне нужно обновить дополнительные параметры mysql из /etc/mysql/mysql.conf.d/mysqld.cnf
Остановить сервер mysql sudo systemctl stop mysql.service
Нужно обновить
bind-address = 0.0.0.0 // replace 0.0.0.0 with required ip, 0.0.0.0 allows all ip
Запустите сервер mysql sudo systemctl start mysql.service
также необходимо создать пользователя, у которого есть доступ с этим ip, добавить разрешение в mysql
mysql > CREATE USER 'user_name'@'%' IDENTIFIED BY 'PASSWORD'; // replace % with appropriate IP
mysql > CREATE USER 'user_name'@'%' IDENTIFIED BY 'PASSWORD'; // replace % with appropriate IP
mysql > GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' WITH GRANT OPTION; // replace % with appropriate IP
mysql > FLUSH PRIVILEGES;
Надеюсь, это кому-то поможет
Если ваша БД является экземпляром RDS, убедитесь, что общедоступный IP-адрес устройства, обращающегося к БД, включен в группу безопасности экземпляра RDS. Также убедитесь, что общедоступный IP-адрес включен во входящий канал соответствующей группы безопасности VPC.
Вы убедились, что группы безопасности разрешают использование вашего экземпляра EC2? docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…