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

Ubuntu16.04にGitLabをインストールする

https://about.gitlab.com/installation/#ubuntu に従う。 $ sudo apt-get install -y curl openssh-server ca- …

no image

Ubuntu16.04にRedmine3.4をインストールする

Redmineはインストールが煩雑なことで有名である。 最も簡単なインストール方法はAnsible playbookを使用すること。 playbookにより自動インストールをする。 http://re …

no image

シナリオクラスでControllerクラスとServiceクラスをシンプルに保つ

no image

Spring MVC 典型的な階層設計とアノテーション

Spring MVCの典型的な階層設計 階層 クラスに付与するアノテーション コントローラー層 @Contoroller サービス層 @Serivice データ層 @Repository どれにも当て …

no image

Thymeleaf-SpringMVC <input type=”password”>はth:filedで出力

参考 http://arimodoki.dip.jp/promenade/t_htmlpassword.html ユーザー登録画面で、ユーザー名(ID)とパスワードを入力させて、次は確認画面で両方を表 …