このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7/MySQL-5.7のインストールから設定まで

CentOS-7にデータベースサーバーのMySQL-5.7をインストールする方法です。

MySQL-5.7は、CentOSの標準リポジトリに入っていません。
ですので、MySQLの公式サイトが用意しているrpmファイルからインストールします。

リポジトリもMySQLの公式サイトで用意してくれているので、追加します。

MySQLのバージョン8もリリースされていましたが、
まだバージョン5を使っていることが多い為、MySQLバージョン8は見送りました。

CentOS-7に標準で入っているのは、MariaDBなので、
MariaDBをアンインストールしてから、MySQLをインストールします。


MariaDBの確認と削除

mariadb がインストールされていたらアンインストールします。

MariaDB インストール確認

##★ 確認する
[root@vm ~]# rpm -qa | grep maria
mariadb-libs-xxxxx.x86_64   ← インストールされていた場合
[root@vm ~]#

MariaDBがインストールされていた場合は、アンインストールします。

MariaDB アンインストール

##★ MariaDBをアンインストールする
[root@vm ~]# yum remove mariadb-libs
[root@vm ~]#

##★ ディレクトリを削除する
[root@vm ~]# rm -rf /var/lib/mysql
[root@vm ~]#


MySQLのリポジトリを追加する

リポジトリをMySQLの公式サイトで用意してくれているので、追加します。
https://dev.mysql.com/downloads/repo/yum/

2019年5月の時点での最新は
「mysql57-community-release-el7-11.noarch.rpm」 のようです。

MySQL リポジトリ追加

[root@vm ~]# yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
読み込んだプラグイン:fastestmirror
mysql57-community-release-el7-11.noarch.rpm                              |  25 kB  00:00:00
/var/tmp/yum-root-3oEOle/mysql57-community-release-el7-11.noarch.rpm を調べています: mysql57-community-release-el7-11.noarch
/var/tmp/yum-root-3oEOle/mysql57-community-release-el7-11.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql57-community-release.noarch 0:el7-11 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================
 Package                     アーキテクチャー
                                      バージョン
                                               リポジトリー                                容量
================================================================================================
インストール中:
 mysql57-community-release   noarch   el7-11   /mysql57-community-release-el7-11.noarch    31 k

トランザクションの要約
================================================================================================
インストール  1 パッケージ

合計容量: 31 k
インストール容量: 31 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
httpd-devel-2.4.6-88.el7.x86_64 は次の要求が不足ています:  /usr/local/bin/perl
  インストール中          : mysql57-community-release-el7-11.noarch                         1/1
  検証中                  : mysql57-community-release-el7-11.noarch                         1/1

インストール:
  mysql57-community-release.noarch 0:el7-11

完了しました!
[root@vm ~]#

追加したリポジトリを確認する

リポジトリが追加されているか確認します。

追加リポジトリ確認

[root@vm ~]# ls -l /etc/yum.repos.d/ | grep mysql
-rw-r--r--  1 root root 1885  4月 27  2017 mysql-community-source.repo
-rw-r--r--  1 root root 1838  4月 27  2017 mysql-community.repo
[root@vm ~]#


MySQL-5.7の情報確認

MySQLの情報確認

[root@vm ~]# yum info mysql-community-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cat.net
 * epel: ftp.riken.jp
 * extras: mirrors.cat.net
 * remi-safe: ftp.riken.jp
 * updates: mirrors.cat.net
利用可能なパッケージ
名前                : mysql-community-server
アーキテクチャー    : x86_64
バージョン          : 5.7.26
リリース            : 1.el7
容量                : 166 M
リポジトリー        : mysql57-community/x86_64
要約                : A very fast and reliable SQL database server
URL                 : http://www.mysql.com/

 ~ 中略 ~

[root@vm ~]#


MySQL-5.7をインストールする

yumコマンドでMySQL-5.7をインストールします。

MySQL インストール

[root@vm ~]# yum -y install mysql-community-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cat.net
 * epel: ftp.riken.jp
 * extras: mirrors.cat.net
 * remi-safe: ftp.riken.jp
 * updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-server.x86_64 0:5.7.26-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-common(x86-64) = 5.7.26-1.el7 のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> 依存性の処理をしています: mysql-community-client(x86-64) >= 5.7.9 のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> 依存性の処理をしています: net-tools のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.7.26-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-libs(x86-64) >= 5.7.9 のパッケージ: mysql-community-client-5.7.26-1.el7.x86_64
---> パッケージ mysql-community-common.x86_64 0:5.7.26-1.el7 を インストール
---> パッケージ net-tools.x86_64 0:2.0-0.24.20131004git.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.60-1.el7_5 を 不要
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
---> パッケージ mysql-community-libs.x86_64 0:5.7.26-1.el7 を 非推奨
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-libs-compat.x86_64 0:5.7.26-1.el7 を 非推奨
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================
 Package                       アーキテクチャー
                                        バージョン                    リポジトリー         容量
================================================================================================
インストール中:
 mysql-community-libs          x86_64   5.7.26-1.el7                  mysql57-community   2.2 M
     mariadb-libs.x86_64 1:5.5.60-1.el7_5 を入れ替えます
 mysql-community-libs-compat   x86_64   5.7.26-1.el7                  mysql57-community   2.0 M
     mariadb-libs.x86_64 1:5.5.60-1.el7_5 を入れ替えます
 mysql-community-server        x86_64   5.7.26-1.el7                  mysql57-community   166 M
依存性関連でのインストールをします:
 mysql-community-client        x86_64   5.7.26-1.el7                  mysql57-community    24 M
 mysql-community-common        x86_64   5.7.26-1.el7                  mysql57-community   274 k
 net-tools                     x86_64   2.0-0.24.20131004git.el7      base                306 k

トランザクションの要約
================================================================================================
インストール  3 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 194 M
Downloading packages:
警告: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.26-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 5072e1f5: NOKEY
mysql-community-common-5.7.26-1.el7.x86_64.rpm の公開鍵がインストールされていません
(1/6): mysql-community-common-5.7.26-1.el7.x86_64.rpm                    | 274 kB  00:00:00
(2/6): mysql-community-libs-5.7.26-1.el7.x86_64.rpm                      | 2.2 MB  00:00:00
(3/6): mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm               | 2.0 MB  00:00:00
(4/6): net-tools-2.0-0.24.20131004git.el7.x86_64.rpm                     | 306 kB  00:00:01
(5/6): mysql-community-client-5.7.26-1.el7.x86_64.rpm                    |  24 MB  00:00:07
(6/6): mysql-community-server-5.7.26-1.el7.x86_64.rpm                    | 166 MB  00:00:27
------------------------------------------------------------------------------------------------
合計                                                            6.4 MB/s | 194 MB  00:00:30
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。
Importing GPG key 0x5072E1F5:
 Userid     : "MySQL Release Engineering "
 Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
 Package    : mysql57-community-release-el7-11.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : mysql-community-common-5.7.26-1.el7.x86_64                      1/7
  インストール中          : mysql-community-libs-5.7.26-1.el7.x86_64                        2/7
  インストール中          : mysql-community-client-5.7.26-1.el7.x86_64                      3/7
  インストール中          : net-tools-2.0-0.24.20131004git.el7.x86_64                       4/7
  インストール中          : mysql-community-server-5.7.26-1.el7.x86_64                      5/7
  インストール中          : mysql-community-libs-compat-5.7.26-1.el7.x86_64                 6/7
  削除中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                            7/7
  検証中                  : mysql-community-server-5.7.26-1.el7.x86_64                      1/7
  検証中                  : net-tools-2.0-0.24.20131004git.el7.x86_64                       2/7
  検証中                  : mysql-community-libs-5.7.26-1.el7.x86_64                        3/7
  検証中                  : mysql-community-libs-compat-5.7.26-1.el7.x86_64                 4/7
  検証中                  : mysql-community-common-5.7.26-1.el7.x86_64                      5/7
  検証中                  : mysql-community-client-5.7.26-1.el7.x86_64                      6/7
  検証中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                            7/7

インストール:
  mysql-community-libs.x86_64 0:5.7.26-1.el7
  mysql-community-libs-compat.x86_64 0:5.7.26-1.el7
  mysql-community-server.x86_64 0:5.7.26-1.el7

依存性関連をインストールしました:
  mysql-community-client.x86_64 0:5.7.26-1.el7   mysql-community-common.x86_64 0:5.7.26-1.el7
  net-tools.x86_64 0:2.0-0.24.20131004git.el7

置換:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5

完了しました!
[root@vm ~]#

MySQL-5.7のインストールを確認する

MySQL-5.7がインストールされたか確認します。

MySQL-5.7 インストール確認

[root@vm ~]# mysqld --version
mysqld  Ver 5.7.26 for Linux on x86_64 (MySQL Community Server (GPL))
[root@vm ~]#


MySQLの起動設定

MySQLをインストールしただけでは、まだ起動していませんので、起動するか確認します。

MySQLを起動させる

MySQL 起動

[root@vm ~]# systemctl start mysqld.service
[root@vm ~]#

MySQLの起動状態を確認する

MySQL 起動確認

[root@vm ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2019-05-01 00:00:00 JST; 14s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 10134 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 10057 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 10137 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─10137 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...

 5月 01 00:00:00 vm.lan systemd[1]: Starting MySQL Server...
 5月 01 00:00:00 vm.lan systemd[1]: Started MySQL Server.
[root@vm ~]#

MySQLを停止させる

起動したMySQLを停止させてみます。

MySQL 停止

[root@vm ~]# systemctl stop mysqld.service

MySQLの自動起動を設定する

CentOS-7の起動と同時にMySQLも起動するように設定します。

MySQL 自動起動 設定

[root@vm ~]# systemctl enable mysqld.service
[root@vm ~]#

MySQLの自動起動を確認する

MySQLの自動起動が設定できているか確認します。

MySQL 自動起動 確認

[root@vm ~]# systemctl is-enabled mysqld.service
enabled
[root@vm ~]#


MySQLの初期設定

MySQLに接続し、初期設定をします。
MySQL-5.7では、新しくパスワードを設定する必要があります。
その場合のパスワードは、「Password1!」で統一して解説しています。

rootのパスワードを確認する

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

rootパスワード 確認

[root@vm ~]# grep 'temporary password' /var/log/mysqld.log
2019-05-01T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: MBiyW=CVb4Qj
[root@vm ~]#

root ユーザーのパスワードを設定する

パスワードが分かったので、rootユーザーで接続してみます。
新しいパスワードを設定しなければ、接続後の操作ができないようになっているようなので、まず新しいパスワードを設定します。

rootユーザー 接続

[root@vm ~]# mysql --user='root' --password='MBiyW=CVb4Qj'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, 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>

#★ 新しいパスワードを設定する
mysql> SET PASSWORD = PASSWORD('任意のパスワード');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>


#★ バージョン確認
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.26    |
+-----------+
1 row in set (0.00 sec)

mysql>


#★ データーベース一覧を表示
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>


#★ データーベース"mysql"の中の"user"テーブルの情報を表示
mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

mysql>


#★ 切断する (quit OR exit)
mysql> quit
[root@vm ~]#


パスワードの設定について

補足として、パスワードの設定方法です。
8文字以上かつ英大文字・小文字・数字・記号を含めないとエラーで返されます。
設定方法には、接続してから変更する方法と接続せずに設定するコマンドがあります。

MySQL パスワード設定

#----- 接続してからパスワードを変更する方法
[root@vm ~]# mysql -u root -p
mysql> SET PASSWORD = PASSWORD('任意のパスワード');

mysql> quit
[root@vm ~]#

#----- 接続せずにパスワードを変更する方法
[root@vm ~]# ALTER USER 'ユーザ名'@'ホスト名' IDENTIFIED BY '任意のパスワード';
[root@vm ~]#

文字コードの変更設定

文字コードの確認と設定を「utf-8」に統一します。

文字コード 確認

[root@vm ~]# mysql -u root -p
mysql>

#★ 文字コードを確認する
mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql> quit
[root@vm ~]#

MySQLの設定ファイルをバックアップする

設定ファイル バックアップ

[root@vm ~]# cp -a -P /etc/my.cnf /root/etc/
[root@vm ~]#

MySQLの設定ファイルを編集する

MySQL 設定ファイル 編集

[root@vm ~]# vi /etc/my.cnf

#--------------------------------------------------
[mysqld]

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

##★ 追記する サーバーの文字コードをUTF-8にする
character-set-server = utf8
#--------------------------------------------------

#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#


MySQLを再起動します

MySQLの設定を変更したら、MySQLデーモンの再起動が必要です。

MySQL 再起動

[root@vm ~]# systemctl restart mysqld.service
[root@vm ~]#

文字コードの再確認

設定変更が適用されているか、再度確認します

MySQL 文字コード再確認

[root@vm ~]# mysql -u root -p
mysql>

#★ 文字コード確認
mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql> quit
[root@vm ~]#


MySQLの動作確認をする

PHPからMySQLに接続できるか否か、動作を確認します。
MySQLのユーザーは root ではなく test で接続します。

test ユーザーを追加する

MySQLのユーザー test を追加します。

MySQL ユーザー追加方法

[root@vm ~]# mysql -u root -p
mysql> CREATE USER 'ユーザ名'@'ホスト名' IDENTIFIED BY 'パスワード';
mysql> quit
[root@vm ~]#


test ユーザーを追加する

テストユーザーとして、 MySQLのユーザー "test" を追加します。

MySQL ユーザー追加

[root@vm ~]# mysql -u root -p
mysql>

##★ ユーザーの一覧を確認する
mysql> SELECT host, user FROM mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.00 sec)

mysql>


##★ ユーザーを作成する
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'Password1!';
Query OK, 0 rows affected (0.00 sec)

mysql>


##★ ユーザーの一覧を再確認する
mysql> SELECT host, user FROM mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
| localhost | test          |
+-----------+---------------+
4 rows in set (0.00 sec)

mysql>


mysql> quit
[root@vm ~]#

PHPからの接続確認

PHPからMySQLに接続する為、簡単なコードで接続してみます。
MySQLのモジュールがPHPにインストールされている必要があります。
下記のコードをPHPが動作する場所に配置して、アクセスします。

PHP MySQL接続

<html>
<head><title>PHP TEST</title></head>
<body>
<?php
$link = mysql_connect('localhost', 'test', 'Password1!');
if (!$link) {
        die('<p>接続に失敗しました。</p>' . mysql_error() );
}

echo '<p>接続に成功しました。</p>';

if (mysql_close($link)){
    print('<p>切断に成功しました。</p>');
}
?>
</body>
</html>


以上、CentOS-7からMySQL-5.7をインストールする方法でした。


0 件のコメント:

人気記事

このブログを検索