Java Eclipseの動的 WebプロジェクトをWebサーバで公開までの道のり MySQLのインストール

いよいよ、MySQLのインストールです。ですが、CentOS7 ではデフォルトでMariaDBが入っている場合があるので、入ってる場合は、削除しておくのが良いようです。

MariaDBが入っているか確認

rpm -qa | grep maria

f:id:ts0818:20170829223715j:plain

入っとりました。

MariaDBの削除

MySQLと競合する可能性があるようなので、削除していきます。

yum remove mariadb-libs
rm -rf /var/lib/mysql/

f:id:ts0818:20170830075218j:plain

途中、Removeするのにパッケージのインストールするか?みたいに聞かれるので「y」 を選択。削除されます。

MySQLの公式のyumリポジトリの追加

CentOSの標準のリポジトリでは、yumでのインストールができないので、リポジトリMySQL公式のyumリポジトリを追加していく必要があるようです。

 

ということで、ブラウザで https://www.mysql.com/jp/ にアクセス。「ダウンロード」をクリック。

f:id:ts0818:20170829231946j:plain

ページの下の方にスクロールすると、「Community (GPL) Downloads >>」というリンクがあるのでクリック。

f:id:ts0818:20170829231943j:plain

少しスクロールすると、「MySQL Yum Repository」という項目があるので、「DOWNLOAD」をクリック。

f:id:ts0818:20170829231940j:plain

ページをスクロールすると、「Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture independent), RPM Package」というのがあるので「Download」をクリック。

f:id:ts0818:20170829231936j:plain

 一番下のほうに、「No thanks, just start my downlod. 」というリンクあるので、

f:id:ts0818:20170829232629j:plain

リンク上で右クリックし、「リンクのアドレスをコピー(E)」を選択。

f:id:ts0818:20170829232716j:plain

適当なエディタに張り付けます。

f:id:ts0818:20170829233042j:plain

先頭のプロトコルが、httpsになってしまっているので、httpにしておきます。 

Google Cloud Platformの仮想マシン(CentOS7)に戻って、MySQLyumリポジトリを追加します。 

yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

f:id:ts0818:20170830075219j:plain

f:id:ts0818:20170830075220j:plain

MySQLyumリポジトリが追加されたようです。確認してみます。

yum info mysql-community-server    

f:id:ts0818:20170830075222j:plain

f:id:ts0818:20170830075221j:plain

yumリポジトリMySQLのパッケージが追加されました。

⇩  旧いバージョンを使う場合は、下記サイトを参考。

MySQLのマイナーバージョン指定したYumインストール・更新 - YOMON8.NET

MySQLの古いバージョンを追加したyumリポジトリから入れる。 | Structured-P

 

MySQLのインストール

yumリポジトリに追加されたMySQLをインストールしていきます。

yum -y install mysql-community-server

f:id:ts0818:20170830075223j:plain 

f:id:ts0818:20170830075225j:plain

インストールされたか確認してみます。

mysqld -version

f:id:ts0818:20170830075224j:plain

インストール済みのrpmファイルで「mysql」のものを表示。

mysqld -version

f:id:ts0818:20170830075226j:plain

無事、インストールされたようです。 

MySQLの起動とrootユーザーの初期パスワードの確認

初回起動時にrootの初期パスワードが自動設定されるようです。なので、まず起動

systemctl start mysqld.service

ログにrootの初期パスワードが出力されるようなので確認。

grep password /var/log/mysqld.log

f:id:ts0818:20170830075227j:plain

「root@localhost: rootユーザーのパスワード」 という形でパスワードが表示されます。

MySQLのセキュリティ設定(初期パスワードの変更など)

rootユーザのパスワードなどを変更していきます。

mysql_secure_installation

f:id:ts0818:20170830075228j:plain

⇧  パスワードの入力を求められるので、「grep password /var/log/mysqld.log」 で表示されたパスワードを入力。

次に、rootユーザーに新しいパスワードを設定するように言われるので、新しいパスワードを入力。

f:id:ts0818:20170830075229j:plain

ここで 気を付けたいのが、

validate_password_policyの初期値はMEDIUMで、パスワード設定に必要な条件は MEDIUM ポリシーは、パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む必要があるという条件を追加します。 らしい。

mysql5.7でパスワードを変更する - Qiita

ということで、パスワードには上記の条件を満たす必要があるようです。

パスワードの再入力。

f:id:ts0818:20170830075230j:plain

パスワード変更してもいいか?と聞かれるので、「y」を入力し、Enter。

f:id:ts0818:20170830075231j:plain

確認のため、先ほど決めた新しいパスワードを入力し、「y」でEnter。

f:id:ts0818:20170830075232j:plain

デフォルトで用意されてたMySQLのユーザー(匿名ユーザーアカウント)を削除するか聞かれるので、「y」でEnter。 

f:id:ts0818:20170830075233j:plain

ローカルホスト以外からアクセス可能な root アカウントを削除します。「y」でEnter。 

f:id:ts0818:20170830075234j:plain

test データベースの削除。「y」でEnter。

f:id:ts0818:20170830075235j:plain

テーブルの権限などを更新。「y」でEnter。

f:id:ts0818:20170830075237j:plain

 

MySQLにログインできるか確認

実際に新しいパスワードでログインできるか確認。

f:id:ts0818:20170830075238j:plain

ログインできました。

 

設定ファイルの編集と起動設定

一旦、MySQLからログアウトしときます。

f:id:ts0818:20170830075239j:plain

「/etc/my.cnf」を編集。まずは、ファイルのバックアップを作成しときます。

f:id:ts0818:20170830075241j:plain

バックアップファイルが作成できたら、「/etc/my.cnf」を編集していきます。

vi /etc/my.cnf

ファイルが開けたら、「i」でINSERTモードにし、

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

の下あたりに、パスワードの有効期限を0にする設定と 、デフォルトの文字コードUTF-8にする設定を追記します。

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

character-set-server = utf8
default_password_lifetime = 0

f:id:ts0818:20170830075242j:plain

編集が済んだら、「Esc」キーを入力し、「:wq」で保存します。 

とりあえず、もう一回MySQLにログインできるか確認。

mysql -u root -p

f:id:ts0818:20170830075243j:plain

いけたっぽいですね。

本番環境では、Eclipseを入れる必要がないとネットで言ってるひとがいたんで、これでJavaの動的Webプロジェクトを動かす環境は整ったことになるのか?

MySQLJDBCドライバとかの変更などはローカル環境で行って、その都度更新し、本番環境にデプロイっていうようなイメージなのか?このへんは現場を体験してないので分かりませんが。)

⇩  下記サイトによるとビルドツールなるものを利用していくようですね

Java製アプリを Eclipse から実行したことしかない新人に「ビルドツールとは?」を説明してみる…そして CI へ - Qiita

 

というわけで、ビルドツールの使い方も学習していく必要があるようです...本番環境への公開までの道のりは長いですね。

 

CentOS7.1にMySQL 5.7をインストール - Qiita

CentOS7.3 に MySQL5.7 をインストールした時のメモ - Qiita

MySQL 5.7 をインストールしたら最初に行うセットアップ | WEB ARCH LABO