【MySQL】install to CentOS7

備忘録。細かいところ忘れがち・・・

####Apacheインストール
[CentOS7にApache (httpd)の最新版2.4.43をインストール](http://labo-blog.aegif.jp/2020/08/centos7apache-httpd2443iusurl.html)

####PHPインストール
[CentOS7のPHPを5.6／7.0／7.1／7.2／7.3系にバージョンアップする](https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0)

[MySQL 5.6 jaリファレンス](https://dev.mysql.com/doc/refman/5.6/ja/)

####準備
```console:mariadbの削除
-> 確認
# rpm -qa | grep maria
-> 見つかれば消去
# yum remove mariadb-libs
# rm -rf /var/lib/mysql/
```
###リポジトリ
公式からリポジトリのURLをチェック（yumインストールするため）
[https://dev.mysql.com/downloads/repo/yum/](https://dev.mysql.com/downloads/repo/yum/)
(豆：ubuntuは末尾が/apt/)

```console:管理者権限
--> 上記で拾ってきたURLを http://dev.mysql.com/get/の後に入力
# yum localinstall http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
-> 確認
# ls /etc/yum.repo.d | grep mysql
mysql-community.repo
mysql-community-source.repo
-> 2つ見つかればOK
```

###yumでインストール
```console:管理者権限
-> インストール実行
# yum install -y mysql-community-server

-> インストール確認
# yum list installed | grep mysql
-> パッケージの中身を覗いておきましょう！
```

###起動設定
```console:管理者権限
-> 起動
# systemctl start mysqld
-> 確認
# systemctl status mysqld
-> 自動起動設定
# systemctl enable mysqld
```

###rootでログイン
```console:管理者権限
-> 自動設定された仮パスワードを調べる
# cat /var/log/mysqld.log | grep root
-> ログイン
# mysql -u root -p -> 仮パスワードを入力 -> ログイン完了
-> rootパスワードの変更
mysql> SET PASSWORD = '{任意のパス}'; -> ８文字以上・英文字・数字・記号入り
```
（豆：パスは自動的にハッシュ化されます。）

```ini:パスワードポリシーの確認と変更
;確認
mysql> show variables like 'validate_password%';

;LOWに変更
mysql> set global validate_password.policy=LOW;
```

```console:文字コードの確認
mysql> show variables like "chara%";
```
今回は初期設定でutf8mb4となっていました。
![WS000030.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455147/8240562a-0688-9be4-0028-87362f5b58ab.jpeg)

###ユーザー
```vim
" 作成済みユーザー一覧
mysql> SELECT user, host FROM mysql.user;
" ユーザー作成 -> ローカル接続のみ
mysql> CREATE user '{ユーザー名}'@'localhost' IDENTIFIED BY '{パスワード}';
" ユーザーの削除
mysql> DROP user '{ユーザー名}'@'localhost';
" ユーザー名の変更
mysql> RENAME user '{旧ユーザー名}' to '{新ユーザー名}';
" ユーザーの権限譲渡
mysql> GRANT CREATE ON *.* {ユーザー名@localhost};
" ユーザーの権限確認
mysql> SHOW GRANTS FOR {ユーザー名@localhost};
```

####おまけ: phpMyAdmin
```vim
" 確認
# rpm -qa | grep epel
-> epel-release-7-12.noarch
" インストール
# yum --enablerepo=epel install -y phpMyAdmin
```

```vim:設定
# vi /etc/httpd/conf.d/phpMyAdmin.conf
```
```php:phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
 
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
 
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
 
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted //add
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
 
<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
 
# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
```
```vim:httpd再起動
# systemctl restart httpd
```

[【CentOS】yumでインストールしたパッケージをアンインストールする](https://blog.websandbag.com/entry/2018/03/11/004329)

お疲れさまでした！
LGTMお願いします！
モチベーション上がります(^^)