MySQL ConohaVPS Spring framework

Spring-data-JPA使用時のbuild.gradleの設定

投稿日:2017年11月23日 更新日:

1.build.grade
compile(“org.springframework.boot:spring-boot-starter-data-jpa”)

***************************
APPLICATION FAILED TO START
***************************
Description:
Cannot determine embedded database driver class for database type NONE

2.application.properties
spring.datasource.url=jdbc:mysql://IPアドレス:3306/oldDomain

Loading class `com.mysql.jdbc.Driver’. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

Fri Nov 24 23:49:18 JST 2017 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

java.sql.SQLException: Access denied for user ”@’KDXXXXXXX.au-net.ne.jp’ (using password: NO)

3.application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration’: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource’ defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method ‘dataSource’ threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver

Fri Nov 24 23:53:49 JST 2017 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

java.sql.SQLException: Access denied for user ”@’KD111239085211.au-net.ne.jp’ (using password: NO)

4.application.properties
spring.datasource.username=xxxxxx
spring.datasource.password=xxxxxxx

2017-11-24 23:58:02.548 INFO 5716 — [ main] c.n.o.OldDomainManagerApplication : Started OldDomainManagerApplication in 8.577 seconds (JVM running for 10.733)
Fri Nov 24 23:58:02 JST 2017 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Cannot determine embedded database url for database type NONE spring.datasource.url=jdbc:mysql://150.95.181.92:3306/oldDomain

 

build.gradleに「compile group: ‘mysql’, name: ‘mysql-connector-java’, version: ‘6.0.6’」この記述があるならば、application.propertiesに「spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver」この記述はいらない。

しかしそれを消すと、こんな警告が出る。

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

そのためやはり、application.propertiesに「spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver」この記述はあった方がよい。

VPSのMySQLが外からの接続を拒否しているため、受け入れるようにしなければならない。>>MySQLに外部ホストから接続できるように設定する

mysql>select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| oldDomain | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

oldDomainというユーザーはlocalhostからしか接続できないという設定になっている。

mysql>grant all privileges on oldDomain.* to oldDomain@"%" identified by 'yourpassword' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)

上記命令により、外部のどのホストからでも接続できるようになります。

mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| oldDomain | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| oldDomain | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.01 sec)

このように、ワイルドカードの行が追加されています。

これでも接続できない場合は、別の層で遮断されている可能性があります。>>MySQLサーバに外部からアクセスする

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
↓
#bind-address = 127.0.0.1

 

-MySQL, ConohaVPS, Spring framework

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SpringフレームワークはSpring 4.Xが最新である

これからSpringフレームワークを勉強する人は、Spring 4.X系で勉強しよう。 Spring 4.0がリリースされたのは、2014-09-08である。 Spring 3.X以前は古いので、これ …

no image

Spring Boot-Spring Data JPAの使用準備

Spring Boot-Spring Data JPAの使用準備は超簡単 やることは3つだけである。 pom.xmlに「1.Spring Data JPA」と「2.使用するDB」を記述する。 appl …

no image

Eclipse上のSpringBootアプリをGradleでビルドする

no image

SpringFWの中心的役割はDIとAOPである。

Spring Frameworkは山程機能がある   Spring Core はDIとAOP Spring Frameworkの最も核となる部分は「Spring Core」の部分です。 Sp …

no image

N+1問題でJPAを諦めるのはもったいない

JPAを実案件で使ってみて。時間をかけて勉強することが必ず必要となる。 自分はいきなりJPAで組むことになった。最初はJPQL使わずにJPAPepositoryの標準メソッドだけでごまかしごまかしやっ …