2016/04/04更新

[サーバー] AmazonLinuxにMySQL5.7をインストールする

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
本日はAmazonLinuxやCentOSにMySQL5.7をインストールする方法をブログに残したいと思います。

画像


目次




yumレポジトリの追加とインストール

今回はyum経由でMySQLをインストールします。最初から入っているyumのレポジトリは少し古いので、MySQL5.7のレポジトリを追加します。
yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
なおこの記事以降で、さらに新しいMySQLが出ているかもしれませんので、最新のrpmはこちらより確認してください。


レポジトリの追加ができたら、インストール可能な内容を確認します。
$ yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64       MySQL Connectors Community         16+5
mysql-tools-community/x86_64            MySQL Tools Community                35
mysql57-community/x86_64                MySQL 5.7 Community Server           66
ちゃんとMySQL5.7がありますね。
あと、yum infoコマンドでも確認してみます。
$ yum info mysql-community-server
Loaded plugins: priorities, update-motd, upgrade-helper
5 packages excluded due to repository priority protections
Available Packages
Name        : mysql-community-server
Arch        : x86_64
Version     : 5.7.11
Release     : 1.el6
Size        : 135 M
Repo        : mysql57-community/x86_64
Summary     : A very fast and reliable SQL database server
URL         : http://www.mysql.com/
License     : Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license as shown in the Description field.
Description : The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
            : and robust SQL (Structured Query Language) database server. MySQL Server
            : is intended for mission-critical, heavy-load production systems as well
            : as for embedding into mass-deployed software. MySQL is a trademark of
            : Oracle and/or its affiliates
            : 
            : The MySQL software has Dual Licensing, which means you can use the MySQL
            : software free of charge under the GNU General Public License
            : (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
            : licenses from Oracle and/or its affiliates if you do not wish to be bound by the terms of
            : the GPL. See the chapter "Licensing and Support" in the manual for
            : further info.
            : 
            : The MySQL web site (http://www.mysql.com/) provides the latest news and
            : information about the MySQL software.  Also please see the documentation
            : and the manual for more information.
            : 
            : This package includes the MySQL server binary as well as related utilities
            : to run and administer a MySQL server.
こちらでもMySQLのバージョンが5.7.11であることがわかります。余談ですが.11であるところもポイントです。.10以下だと、セットアップ時にdefault_password_lifetimeというパラメータに0する必要があるためです。詳細はこちらのブログです。


では、インストールします。
$ yum -y install mysql-community-server
インストールが完了したら、以下コマンドでバージョンを確認します。
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using  EditLine wrapper
最後に、サーバー起動時に自動的にMySQLも起動するように設定しておきます。
chkconfig mysqld on
これでインストールは完了です。



MySQL起動とログイン

インストールが完了したら、さっそく起動します。
$ service mysqld start
Initializing MySQL database:                               [  OK  ]
Installing validate password plugin:                       [  OK  ]
Starting mysqld:                                           [  OK  ]
初回起動時には上記のようにデータベースの初期化処理などが行われます。

そしてここで僕はつまづいたのですが、「rootユーザーのパスワードはどこ?」という状態になりました。。よくよく調べてみると/var/log/mysqld.logのログファイル内に、起動の初期化処理時に仮のrootユーザーのパスワードがあることがわかりました。
# /var/log/mysqld.log
...省略...
[Note] A temporary password is generated for root@localhost: Nj&tcl!<R6uO
...省略...
上記の場合にはNj&tcl!<R6uOがrootの初期パスワードです。それを用いてログインします。
$ mysql -uroot -p
password: 
これでMySQLにログインできれば成功です。しかし何か処理を行おうとすると、
mysql> \s
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
初期の仮パスワードを変更するまでは、処理は受け付けてくれないようです。なので、新しいパスワードを設定します。
ALTER USER root@localhost IDENTIFIED BY 'NewPass123?&!';
ここでパスワードはある程度強度があるものが求められます(僕はここでもハマりました)。以下のような設定がデフォルトで、
mysql> show global variables like 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.05 sec)
「8文字以上、英字/数字/記号をそれぞれ1つ以上含む」というのがパスワード文字列の条件となっています。


上記でパスワードを変更すれば、MySQLを使えるようになります。



参考資料

今回の作業を行うために、以下の記事を参照しました。ありがとうございます。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.5.1 MySQL Yum リポジトリを使用して MySQL を Linux にインストールする | dev.mysql.com

CentOS 6 / RHEL 6 に MySQL 5.6 を yum インストールする手順 | WEB ARCH LABO

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



最後に

今回は、AmazonLinuxにMySQL5.7をインストールする方法をブログに書きました。yumレポジトリのURLやハマりどころなど残しておきたいところが多かったのでブログを書いた次第です。今後は同じようなことにハマらなければいいなーと思う今日この頃です。ただ、ハマるとすごく勉強になるなぁとも思っています。

最後になりますが本ブログでは、フロントエンド・Python・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

[NodeJS] nodeで例外処理を書いて、最低限落ちないサーバー実装を行うException Handler
[NodeJS] requestモジュールを使って、サーバーから画像ファイルをダウンロードする
[サーバー] さくらVPSのセットアップ② 〜 nginxのインストール、Jenkinsのインストール、nginxとJenkinsの接続(リバースプロキシ)、nginxとPHP、パケットフィルタリング、など 〜
[サーバー] さくらVPSのセットアップ① 〜 OSの確認、ユーザー作成、Git、Ruby導入 〜
[サーバー] AmazonLinuxにMySQL5.7をインストールする
[サーバー] MySQL5.7でrootのパスワードを忘れた場合のリセット方法(CentOSやAmazonLinuxの場合)
[Go] net/httpパッケージでWebサーバー(handlerの書き方、静的ファイル配信、Basic認証、など)
RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。