CentOS7でMySQLのインストールを行っていきます。CentOS7ではデフォルトではmariaDBというデータベースがインストールされる設定になっています。 mariaDBはMySQLの互換性を持ちますが別のデータベースになるので、今回は正規のMySQLのインストールを行っていきます。 今回はMySQLの公式に載っているインストール方法に沿って解説します。

CentOS7でMySQLのインストール

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年10月23日

CentOS7でMySQLのインストールを行っていきます。CentOS7ではデフォルトではmariaDBというデータベースがインストールされる設定になっています。

mariaDBはMySQLの互換性を持ちますが別のデータベースになるので、今回は正規のMySQLのインストールを行っていきます。

今回はMySQLの公式に載っているインストール方法に沿って解説します。

事前準備

まずはmariaDBをインストールしないように設定していく必要があるのと、MySQLをインストールすることができる用に準備を行っていきます。

mariaDBの削除

mariaDBがインストールされている場合には削除してしまいましょう。もともとインストールされていなくても実行する分には問題ありません。

# デフォルトのmariaDBのアンインストール
$sudo yum remove mariadb-libs

# 関係するデータの削除(rmなので間違えないように注意)
$sudo rm -rf /var/lib/mysql/

これでmariaDBの削除と持っていたデータベースの削除が完了します。

MySQLの公式リポジトリの追加

CentOS7を利用する場合にはyumというインストール専用コマンドを利用します。デフォルトではMySQLのインストールができない状態なので、インストールができる状態にしていきます。

$sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

sudoを利用しているのでパスワードの入力を求められる場合には入力して実行しましょう。

これで公式リポジトリの追加までが完了しました。つまりMySQLをインストールするためのリストをゲットしただけです。インストールまでは完了していません

MySQLのインストール

ここから実際にインストールを進めていきます。

インストールするMySQLのバージョンを選択

デフォルトではMySQLの最新バージョンがインストールされる設定になっています。どんなバージョンがあるのかを決めるために、バージョンリストを以下のコマンドで確認してみましょう。

$yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community      無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community      無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 無効
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community      無効
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 無効
mysql-connectors-community/x86_64  MySQL Connectors Community       有効:    128
mysql-connectors-community-source  MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64       MySQL Tools Community            有効:    100
mysql-tools-community-source       MySQL Tools Community - Source   無効
mysql-tools-preview/x86_64         MySQL Tools Preview              無効
mysql-tools-preview-source         MySQL Tools Preview - Source     無効
mysql55-community/x86_64           MySQL 5.5 Community Server       無効
mysql55-community-source           MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64           MySQL 5.6 Community Server       無効
mysql56-community-source           MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64           MySQL 5.7 Community Server       無効
mysql57-community-source           MySQL 5.7 Community Server - Sou 無効
mysql80-community/x86_64           MySQL 8.0 Community Server       有効:    145
mysql80-community-source           MySQL 8.0 Community Server - Sou 無効

このような形でMySQLのリストが表示されます。「有効」と書かれたものがインストールする際に利用されるパッケージです。今回はMySQLのバージョン8.0がインストールされる設定になっています。

これを変更する場合には以下の用に有効・無効を変更する必要があります。

# バージョン8.0の無効化
$sudo yum-config-manager --disable mysql80-community

# バージョン5.7の有効化
$sudo yum-config-manager --enable mysql57-community

これでバージョン5.7をインストールする選択に変更されました。

確認のために先程実行したyum repolist all | grep mysqlを実行してみましょう。有効となっている項目が変更されていることがわかるかと思います。

MySQLのインストール

インストールしたいバージョンを選択できたら、実際に以下のコマンドでインストールを進めていきましょう。

$sudo yum -y install mysql-community-server

インストールが完了したという内容のメッセージが表示されればインストール完了です!

以下のコマンドでインストールされたバージョンを確認できます。

$mysql --version
mysql  Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using  EditLine wrapper

MySQLの起動

MySQLサーバーの起動を行っていきます。

CentOS7の場合には以下のコマンドで起動が可能です。

$sudo systemctl start mysqld

起動できたかどうか確認するために以下のコマンドも実行しましょう。

$sudo systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2019-10-23 12:55:24 JST; 53min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 22399 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 22348 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 22402 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─22402 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

activerunningと表示されていれば起動ができています。

さらに、OSを再起動した場合に自動的に起動できるように自動起動設定を入れておきましょう。

$sudo systemctl enable mysqld

これで自動起動設定まで完了です。

MySQLへの初回ログイン

MySQL5.7以降を上記の方法でインストールした場合、初回のMySQLのrootユーザーパスワードが自動設定されています。自動設定されたパスワードはMySQLのログファイルに格納されています。

そのパスワードは以下のコマンドを実行することで確認できます。

$sudo grep 'temporary password' /var/log/mysqld.log
2019-10-23T03:55:20.689143Z 1 [Note] A temporary password is generated for root@localhost: パスワード

一番最後にパスワードの情報が記載されています。

初回ログインを行うために以下のコマンドを実行してみましょう。

$mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.28

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> 

Enter passwordと表示されたら先程表示されたパスワードを入力することでログインできます。ログインに成功するとmysql>と表示され、MySQLのSQLやコマンドの入力待機状態になります。

ログインできたらrootユーザーのパスワードを以下のコマンドで変更しておきましょう。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'パスワード情報';

パスワードには、小文字・大文字・数字・記号が必要で最低8文字です。これらが含まれていないと下記のようなエラーが表示されます。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

以上でMySQLの初回ログインとパスワード変更までが完了しました。

あとはMySQLカテゴリーにあるようなユーザー追加などを行えば利用できます。