いよいよ、MySQLのインストールです。ですが、CentOS7 ではデフォルトでMariaDBが入っている場合があるので、入ってる場合は、削除しておくのが良いようです。
MariaDBが入っているか確認
rpm -qa | grep maria
入っとりました。
MariaDBの削除
MySQLと競合する可能性があるようなので、削除していきます。
yum remove mariadb-libs rm -rf /var/lib/mysql/
途中、Removeするのにパッケージのインストールするか?みたいに聞かれるので「y」 を選択。削除されます。
MySQLの公式のyumリポジトリの追加
CentOS7になり、標準リポジトリからMySQLはインストールできなくなっています。
CentOS7.1 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストール | kakiro-web カキローウェブ
CentOSの標準のリポジトリでは、yumでのインストールができないので、リポジトリにMySQL公式のyumリポジトリを追加していく必要があるようです。
ということで、ブラウザで https://www.mysql.com/jp/ にアクセス。「ダウンロード」をクリック。
ページの下の方にスクロールすると、「Community (GPL) Downloads >>」というリンクがあるのでクリック。
少しスクロールすると、「MySQL Yum Repository」という項目があるので、「DOWNLOAD」をクリック。
ページをスクロールすると、「Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture independent), RPM Package」というのがあるので「Download」をクリック。
一番下のほうに、「No thanks, just start my downlod. 」というリンクあるので、
リンク上で右クリックし、「リンクのアドレスをコピー(E)」を選択。
適当なエディタに張り付けます。
先頭のプロトコルが、httpsになってしまっているので、httpにしておきます。
Google Cloud Platformの仮想マシン(CentOS7)に戻って、MySQLのyumリポジトリを追加します。
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
MySQLのyumリポジトリが追加されたようです。確認してみます。
yum info mysql-community-server
⇩ 旧いバージョンを使う場合は、下記サイトを参考。
・MySQLのマイナーバージョン指定したYumインストール・更新 - YOMON8.NET
・MySQLの古いバージョンを追加したyumリポジトリから入れる。 | Structured-P
MySQLのインストール
yumリポジトリに追加されたMySQLをインストールしていきます。
yum -y install mysql-community-server
インストールされたか確認してみます。
mysqld -version
インストール済みのrpmファイルで「mysql」のものを表示。
mysqld -version
無事、インストールされたようです。
MySQLの起動とrootユーザーの初期パスワードの確認
初回起動時にrootの初期パスワードが自動設定されるようです。なので、まず起動
systemctl start mysqld.service
ログにrootの初期パスワードが出力されるようなので確認。
grep password /var/log/mysqld.log
「root@localhost: rootユーザーのパスワード」 という形でパスワードが表示されます。
MySQLのセキュリティ設定(初期パスワードの変更など)
rootユーザのパスワードなどを変更していきます。
mysql_secure_installation
⇧ パスワードの入力を求められるので、「grep password /var/log/mysqld.log」 で表示されたパスワードを入力。
次に、rootユーザーに新しいパスワードを設定するように言われるので、新しいパスワードを入力。
ここで 気を付けたいのが、
validate_password_policyの初期値はMEDIUMで、パスワード設定に必要な条件は MEDIUM ポリシーは、パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む必要があるという条件を追加します。 らしい。
ということで、パスワードには上記の条件を満たす必要があるようです。
パスワードの再入力。
パスワード変更してもいいか?と聞かれるので、「y」を入力し、Enter。
確認のため、先ほど決めた新しいパスワードを入力し、「y」でEnter。
デフォルトで用意されてたMySQLのユーザー(匿名ユーザーアカウント)を削除するか聞かれるので、「y」でEnter。
ローカルホスト以外からアクセス可能な root アカウントを削除します。「y」でEnter。
test データベースの削除。「y」でEnter。
テーブルの権限などを更新。「y」でEnter。
MySQLにログインできるか確認
実際に新しいパスワードでログインできるか確認。
ログインできました。
設定ファイルの編集と起動設定
一旦、MySQLからログアウトしときます。
「/etc/my.cnf」を編集。まずは、ファイルのバックアップを作成しときます。
バックアップファイルが作成できたら、「/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
編集が済んだら、「Esc」キーを入力し、「:wq」で保存します。
とりあえず、もう一回MySQLにログインできるか確認。
mysql -u root -p
いけたっぽいですね。
本番環境では、Eclipseを入れる必要がないとネットで言ってるひとがいたんで、これでJavaの動的Webプロジェクトを動かす環境は整ったことになるのか?
(MySQLのJDBCドライバとかの変更などはローカル環境で行って、その都度更新し、本番環境にデプロイっていうようなイメージなのか?このへんは現場を体験してないので分かりませんが。)
⇩ 下記サイトによるとビルドツールなるものを利用していくようですね
・Java製アプリを Eclipse から実行したことしかない新人に「ビルドツールとは?」を説明してみる…そして CI へ - Qiita
というわけで、ビルドツールの使い方も学習していく必要があるようです...本番環境への公開までの道のりは長いですね。
・CentOS7.1にMySQL 5.7をインストール - Qiita
・CentOS7.3 に MySQL5.7 をインストールした時のメモ - Qiita
・MySQL 5.7 をインストールしたら最初に行うセットアップ | WEB ARCH LABO
今回はこのへんで。