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
環境構築
インストール
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
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%]
設定
文字コードとパスワードの有効期限を設定
インストール後はデータベースの文字コードが「latin1」になっているので、「utf8」に変更します。 また、パスワードの有効期限を無期限に変更します。
# cd /etc/ # vi my.cnf
※ファイルの末尾に追加※ [mysqld] (中略) character-set-server = utf8 default_password_lifetime = 0
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
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>
文字コード設定確認
/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>
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 #