CentOS7 MySQLを入れてデータベースを作成する

# 目的

- MySQLをCentOS7に入れてデータベースを作成する方法をまとめる

# 実施環境

- ハードウェア環境

| 項目 | 情報 |
| --- | --- |
| OS | CentOS 7 (7.8.2003) |
| ハードウェア | Dell Studio 1537 |
| プロセッサ | Intel(R) Core(TM)2 Duo CPU     P8400  @ 2.26GHz |
| メモリ | 4 GB DDR3 |
| グラフィックス | 不明 |

# 前提条件

- 下記、または下記に準ずる方法でCentOS7のマシンが構築されていること。
    - [Cent0S7をPCにインストールする](https://miriwo.hatenablog.com/entry/2020/08/09/144030)

# 前提情報

- 説明で紹介するコマンドはクライアントPC(Mac)からSSHを用いて接続を行い実行する。

# 読後感

- CentOS7のPCにMySQLを入れてデータベースを作成することができる。

# 概要

1. リポジトリの追加とインストール
1. ログイン
1. データベースの作成

# 詳細

1. リポジトリの追加とインストール
    1. 下記コマンドを実行してyumのアップデートを行う。

        ```terminal
        $ sudo yum update
        ```
    1. 下記コマンドを実行してすでに入っているMariaDBのパッケージを削除する。

        ```terminal
        $ sudo yum remove mariadb-libs.
        ```
    1. 下記コマンドを実行してリポジトリを追加する。

        ```terminal
        $ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
        ```
    1. 下記を実行して必要物をインストールする。

        ```terminal
        $ sudo yum install --enablerepo=mysql80-community mysql-community-server mysql-community-devel
        ```
    1. 下記コマンドを実行してインストールされたMySQL関連のパッケージ一覧を出力する。

        ```terminal
        $ yum list installed | grep mysql
        ```
    1. 先のコマンドを実行した結果が下記の様になることを確認する。

        ```terminal
        $ mysql-community-client.x86_64               8.0.21-1.el7               @mysql80-community
        $ mysql-community-common.x86_64               8.0.21-1.el7               @mysql80-community
        $ mysql-community-devel.x86_64                8.0.21-1.el7               @mysql80-community
        $ mysql-community-libs.x86_64                 8.0.21-1.el7               @mysql80-community
        $ mysql-community-server.x86_64               8.0.21-1.el7               @mysql80-community
        $ mysql80-community-release.noarch            el7-3                      @/mysql80-community-release-el7-3.noarch
        ```
    1. 下記コマンドを実行してログファイルを用意する。

        ```terminal
        $ sudo touch /var/log/mysqld.log
        ```
    1. 下記コマンドを実行してmysqldをスタートする。(実行完了まで若干時間がかかる場合がある)

        ```terminal
        $ sudo service mysqld start
        ```
    1. 下記コマンドを実行してmysqldのステータスを確認する。「Active」の行にrunngingと記載されていることを確認する。

        ```terminal
        $ systemctl status mysqld.service
        ```
    1. 下記コマンドを実行してCentOS7のPCの起動と同時にmysqldが起動する様に設定する。

        ```terminal
        $ sudo chkconfig mysqld on
        ```
1. ログイン
    1. 下記コマンドを実行してログファイルを開く。

        ```terminal
        $ sudo less /var/log/mysqld.log
        ```
    1. 開いたファイル内で下記の様な一行を見つける。

        ```/var/log/mysqld.log
        YYYY-MM-DDTHH:MM:SS.260490Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XXXXXXXXXXXX
        ```
    1. ファイルに記載された行の`XXXXXXXXXXXX`の部分がrootユーザの初期パスワードとなるのでメモしておく。(`>`や`?`などの特殊文字も初期パスワードの一部なので注意する)
    1. 下記コマンドを実行してMySQLにログインする。(ログインできることを確認する。)

        ```terminal
        $ mysql -u root -p
        Enter password: 先にメモしたMySQLのrootユーザの初期パスワード
        ```
    1. 下記SQL文を実行してMySQLのrootユーザのパスワードを自分用の物に変更する。

        ```sql
        mysql> ALTER USER 'root'@'localhost' identified BY '大文字、小文字、特殊文字(アスタリスク等)を含む新しいrootユーザのパスワード';
        ```
    1. 下記を実行して一旦MySQLからログアウトする。

        ```sql
        mysql> exit
        ```
1. データベースの作成
    1. 下記コマンドを実行してMySQLにログインする。(ログインパスワードは自分で再設定した物を入力する。)

        ```terminal
        $ mysql -u root -p
        Enter password: 先に自分で設定し直したMySQLのrootユーザの初期パスワード
        ```
    1. 下記SQLを実行してデータベース「test」を作成する。

        ```sql
        mysql> create database test;
       ```
    1. 下記SQLを実行してデータベース一覧を出力し、「test」が存在していることを確認する。

        ```sql
        mysql> show databases;
        ```
    1. ここまで完了したら本記事の作業は完了である。