OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2016/03/05
更新日: 2016/03/12

OSSでLinuxサーバ構築

MySQL 5.7.11をCentOS 7.2にインストールして初期設定

トップページOSSでLinuxサーバ構築 > MySQL 5.7.11をCentOS 7.2にインストールして初期設定
このエントリーをはてなブックマークに追加

概要

 CentOS 7.2へMySQL 5.7.11をインストールします。 CentOS 7.2のインストールメディアに同梱されているのはMySQLではなくMariaDBで、バージョンは5.5です。 MariaDB 5.5はMySQL 5.5の非商用番を一部改良してリリースされたものですが、最新の機能を使いたい場合は Oracle社のダウンロードサイトからMySQLの最新版をダウンロードして利用します。

 Download MySQL Community Server(Oracle社ウェブサイト)

 CentOSの場合は、プラットフォームに「Red Hat Enterprise linux / Oracle Linux」を選択します。 ダウンロードできるインストールモジュールはRPMパッケージの形式で、tarでアーカイブされています。 2016年3月5日時点でダウンロードしたファイルは「mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar」でした。

構成

サーバ構成

OSバージョン

CentOS 7.2.1511 x86_64

ソフトウェア・パッケージ一覧

  • mysql-community-common-5.7.11-1.el7.x86_64.rpm
  • mysql-community-libs-5.7.11-1.el7.x86_64.rpm
  • mysql-community-client-5.7.11-1.el7.x86_64.rpm
  • mysql-community-server-5.7.11-1.el7.x86_64.rpm

サーバ構築

インストール

(1) MariaDBライブラリのアンインストール

 CentOS 7.2をインストールすると、MariaDBのライブラリパッケージが標準でインストールされていました (環境によります)。これがインストールされたままだと、MySQLのインストール時にパッケージの依存関係チェックで 以下のようなエラーが表示されます。

エラー: 依存性の欠如:
    mariadb-libs は mysql-community-libs-5.7.11-1.el7.x86_64 によって不要とされています

 そのため、事前にMariaDBのライブラリをアンインストールします。また、このパッケージに依存している Postfixも併せてアンインストールします。 もしPotfixを利用する必要がある場合は、別途対策を考える必要がありますね。。。

# rpm -e postfix
# rpm -e mariadb-libs

(2) MySQLのインストール

 ダウンロードした mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar ファイルを /media/rpm/mysql-5.7.11/ に 配置した前提でインストールを開始します。 MySQLのtarファイルを展開すると、12個のRPMパッケージが生成されますが、 今回は最低限必要な4パッケージをインストールします。

# cd /media/rpm/mysql-5.7.11/
# ls -l
合計 533220
-rw-r--r-- 1 root root 546017280  2月 23 22:46 mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar
# tar xvf mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar
mysql-community-libs-5.7.11-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.11-1.el7.x86_64.rpm
mysql-community-devel-5.7.11-1.el7.x86_64.rpm
mysql-community-server-5.7.11-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.11-1.el7.x86_64.rpm
mysql-community-client-5.7.11-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.11-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.11-1.el7.x86_64.rpm
mysql-community-test-5.7.11-1.el7.x86_64.rpm
mysql-community-common-5.7.11-1.el7.x86_64.rpm
mysql-community-embedded-5.7.11-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.11-1.el7.x86_64.rpm
# rpm -ihv mysql-community-server-5.7.11-1.el7.x86_64.rpm mysql-community-client-5.7.11-1.el7.x86_64.rpm mysql-community-common-5.7.11-1.el7.x86_64.rpm mysql-community-libs-5.7.11-1.el7.x86_64.rpm
警告: mysql-community-server-5.7.11-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 5072e1f5: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:mysql-community-common-5.7.11-1.e################################# [ 25%]
   2:mysql-community-libs-5.7.11-1.el7################################# [ 50%]
   3:mysql-community-client-5.7.11-1.e################################# [ 75%]
   4:mysql-community-server-5.7.11-1.e################################# [100%]

設定

(1) 文字コードとパスワードの有効期限を設定

 インストール後はデータベースの文字コードが「latin1」になっているので、「utf8」に変更します。 また、パスワードの有効期限を無期限に変更します。

# cd /etc/
# vi my.cnf
ファイル名:/etc/my.cnf
※ファイルの末尾に追加※
[mysqld]
(中略)
character-set-server = utf8
default_password_lifetime = 0

(2) MySQLの起動

 MySQLインストール直後は、自動起動の設定は有効になっており、プロセスは停止した状態になっています。 MySQLを起動します。

# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
# systemctl start mysqld
# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 金 2016-03-04 01:17:09 JST; 19s ago
  Process: 4763 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 4689 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 4766 (mysqld)
   CGroup: /system.slice/mysqld.service
           mq4766 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

 3月 04 01:16:55 rah81s1 systemd[1]: Starting MySQL Server...
 3月 04 01:17:09 rah81s1 systemd[1]: Started MySQL Server.
# ps -ef | grep mysqld
mysql     2555     1  0 02:03 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      2725  2682  0 02:15 pts/0    00:00:00 grep --color=auto mysqld

(3) MySQLのrootユーザのパスワード変更

 MySQLインストール時にMySQLのrootユーザに初期パスワードが自動で設定されます。 設定されたパスワードはMySQLのログファイルに書き出されますので、ログを確認して初期パスワードでログインします。 ログイン後、パスワードを変更します。

# grep 'temporary password' /var/log/mysqld.log
2016-03-03T16:16:57.756545Z 1 [Note] A temporary password is generated for root@localhost: rbgpd%2uiptX
# mysql -u root -p
Enter password: ←ログに表示されたパスワードを入力。この例では「rbgpd%2uiptX」
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.11

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'MyPass55!'; ←パスワード設定
Query OK, 0 rows affected (0.00 sec)

mysql>

(4) 文字コード設定確認

 /etc/my.cnf で設定した文字コードが反映されていることを確認します。 デフォルトでは latin1 ですが、utf8 になっていれば正しく変更されています。

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       | ←utf8が設定された
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       | ←utf8が設定された
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>

(5) MySQLのステータス確認

 最期にセットアップしたMySQLのステータスを確認します。

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using  EditLine wrapper

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.11 MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 4 min 44 sec

Threads: 1  Questions: 9  Slow queries: 0  Opens: 106  Flush tables: 1  Open tables: 99  Queries per second avg: 0.031
--------------

mysql> exit
Bye
#

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号