last modified September 10, 2020
Spring Boot MySQL tutorial shows how to use MySQL database in a Spring Bootapplication.
Spring is a popular Java application framework for creatingenterprise applications. Spring Boot is an evolution of Springframework which helps create stand-alone, production-grade Spring basedapplications with minimal effort.
MySQL
MySQL is a leading open source database management system. It isa multi-user, multithreaded database management system. MySQL is especiallypopular on the web. It is one part of the very popular LAMP platform,which includes Linux, Apache, MySQL, and PHP. MySQL database is availableon most important OS platforms. It runs on BSD Unix, Linux, Windows, and Mac.
MySQL setup
We are going to show how to install MySQL database on a Debian Linux system.
Snipe-IT is a free and open-source, cross-platform, feature-rich IT asset management system built using a PHP framework called Laravel.It is a web-based software, which enables IT, administrators, in medium to large enterprises to track physical assets, software licenses, accessories, and consumables in a single place. Mysqlsecureinstallation Mariadb will always refuse the password because the current user is not root. So you need to call them with sudo (or as the root user on your machine) So locally you just want to use: sudo mysql. Sudo mysqlsecureinstallation When moving from mysql to mariadb it took I will for me to figure this out. $ sudo mysqlsecureinstallation We can use mysqlsecureinstallation to increase security of MySQL server. We are given the choice to improve the MySQL root password, remove anonymous user accounts, disable root logins outside of localhost, and remove test databases.
This command installs MySQL server and related packages.
These two commands are used to start and stop MySQL.
We check the status of the database with systemctl status mysql
command.
Now we need to reset the root password. We start the mysql command line tool.(The server must be running.) We connect as root.
We set a new password for root.
We can use mysql_secure_installation
to increase security of MySQLserver. We are given the choice to improve the MySQL root password, removeanonymous user accounts, disable root logins outside of localhost, and removetest databases.
We create a new testdb
database.
We create a new MySQL user and grant it privileges to the testdb
database.
Creating MySQL table
Now we are going to create a new MySQL table called cities
.
This is SQL to create the cities
table.
With the source
command, we execute the SQL statements.
Spring Boot MySQL example
The following application is a simple Spring Boot web application, which usesMySQL database. We have a home page with a link to display data from a databasetable. We use Freemarker templating system to join data with HTML.
This is the project structure.
Spring Boot starters are a set of convenient dependency descriptors whichgreatly simplify Maven configuration. The spring-boot-starter-parent
has some common configurations for aSpring Boot application. The spring-boot-starter-web
is a starterfor building web, including RESTful, applications using Spring MVC. Thespring-boot-starter-freemarker
is a starter for building MVC webapplications using Freemarker views. The spring-boot-starter-data-jpa
is a starter for using Spring Data JPA with Hibernate.
The mysql-connector-java
dependency is for the MySQL database driver.
The spring-boot-maven-plugin
provides Spring Boot support in Maven, allowing us to package executable JAR or WAR archives. Its spring-boot:run
goal runs the Spring Boot application.
In the application.properties
file we write various configurationsettings of a Spring Boot application. With the spring.main.banner-mode
property we turn off the Spring banner. With the logging.level.org.springframework
we set the logging level for spring framework to ERROR
.In the spring datasource properties we set up the MySQL datasource.
This is the City
entity. Each entity must have at least twoannotations defined: @Entity
and @Id
.
The @Entity
annotation specifies that the class is anentity and is mapped to a database table while the @Table
annotationspecifies the name of the database table to be used for mapping.
The primary key of an entity is specified with the @Id
annotation.The @GeneratedValue
gives a strategy for generating the values of primary keys.
By extending from the Spring CrudRepository
, we will havesome methods for our data repository implemented, including findAll()
.This way we save a lot of boilerplate code.
ICityService
provides the findAll()
contractmethod declaration to get all cities from the data source.
CityService
contains the implementation of the findAll()
method. We use the repository to retrieve data from the database.
CityRepository
is injected.
The findAll()
method of the repository returns the list ofcities.
MyController
class is annotated with @Controller
.
We inject an ICityService
into the countryService
field.
We map a request with the /cities
path to the controller'sfindCities
method. The @GetMapping
annotation maps a GET request to the method. The model gains a list of cities and the processing issent to the showCities.ftlh
Freemarker template file.
In the showCities.ftlh
template file, we display the data inan HTML table.
In the index.html
there is a link to show all cities.
The Application
sets up the Spring Boot application.The @SpringBootApplication
enables auto-configuration andcomponent scanning.
After the application is run, we can navigate to localhost:8080
.
In this tutorial, we have showed how to use MySQL database ina Spring Boot application.
List out all Spring Boot tutorials.
2016/09/03
こんにちは、okutani(@okutani_t)です。本記事ではCentOS7にMySQLを導入する手順を紹介しています。
本記事では下記のCentOSで設定を進めています。
なお、CentOS7ではデフォルトでMariaDBという、MySQLの後継と言われている(フォーク元がMySQL)データベースが導入されます。MariaDBを使う場合は次のように導入できます。
今回はMariaDBではなく、MySQLを導入する方法について解説していますので注意してください。
では、さっそくCentOS7にMySQLを導入してみましょう。
参考MySQL 5.7 を CentOS 7 に yum インストールする手順 | WEB ARCH LABO
スポンサーリンク
もくじ
- 1 CentOS7にMySQLを導入する方法
CentOS7にMySQLを導入する方法
CentOS7にMySQLを導入していきます。
MariaDBの削除
Mysql_secure_installation Access Denied Root
まずはじめに、MariaDBがデフォルトで導入されているかどうか確認しておきます。
もし見つかった場合は削除しておきます。
データフォルダが残っている場合は以下コマンドで削除。
yumリポジトリの追加・インストール
MySQLのリポジトリをyumに追加していきます。
下記のサイトへアクセスし、Linux7のDownloadをクリック。
LINKMySQL :: Download MySQL Yum Repository
「No thanks, just start my download.」のリンク先をコピーします。
今回は以下のURLがコピーされました。
「localinstall」を使うことでrpmファイルを直接インストールすることができます。先ほど取得したURLを使って下記を実行。
導入できるMySQLのバージョンを確認。
5.7.11が導入できることが分かりました。下記を実行してインストール。
導入を確認。
無事にCentOS7にMySQLが導入されました。
MySQL起動設定
MySQLの起動まわりについて解説します。
MySQLの起動は以下コマンド。
停止は以下。
サーバー起動時に、自動でMySQLを立ち上げるようにするには以下コマンド。
Mysql_secure_installation Command Not Found Mac
CentOS7からsystemctlが使われるようになったので気をつけましょう。
自動起動を停止するには以下。
現在の起動の状態を確認するには以下コマンドです。
自動起動設定かそうでないかの確認は以下。
rootのパスワードを変更
初期状態で、MySQLのrootのパスワードが設定されているので変更しておきます。初期パスワードは「/var/log/mysqld.log」で確認できます。
上記のように、デフォルトのパスワードが決まっています。
「mysql_secure_installation」コマンドを利用すると、対話形式にrootパスワード変更や、その他初期設定がかんたんにおこなえます。こちらを利用して設定をおこないましょう。
上記設定では次の設定をおこなっています。
- rootパスワード変更
- 匿名ユーザーの削除
- リモートホストからrootログイン禁止
- テスト用データベース削除
- ユーザー権限が保存されているテーブルをリロード
ちなみに、新しく設定するパスワードは「8文字以上かつ英大文字・小文字・数字・記号」を含んでいないと弾かれますので気をつけてください。
これでrootパスワードの変更、その他初期設定が完了しました。
文字コードの設定
文字コードをUTF-8にしておきましょう。「/etc/my.cnf」をviで開いて、次の2項目を最終行に追記。
「skip-character-set-client-handshake」を設定しておくと、クライアントの応答がすべてUTF-8になります。
設定を反映させるため、MySQLを再起動させておきます。
念のため確認。
無事に文字コードがUTF-8になりました。これでCentOS7でMySQLが使えますね。
おまけ: rootパスワードを制限なく自由に決める
rootのパスワードはデフォルトで4種類の文字を含まないといけないため、その規約を外すには以下のように設定します。
「/etc/my.cnf」の最終行あたりに下記を追記。
再起動します。
ログイン後、パスワードを再設定すればOKです。
これを設定しておけば、root以外のユーザーにも上記設定が適応されます。参考になれば幸いです。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
LINKokutani's Portfolio
スポンサーリンク
こちらもどうぞ
- PREV
- CentOS7にPHP5.6を導入する方法
- NEXT
- Laravel導入方法&初期設定まとめ