VirtualBox内のCentOS7にMySQLをインストールする

###参考にした記事
インストール手順
https://qiita.com/ritukiii/items/f4e2fbae5d6e7b1aa5f9
https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1

名前解決
https://qiita.com/taro0219/items/5bde092868b5ac817977


IPv6の無効化
https://www.server-memo.net/centos-settings/centos7/disable-ipv6.html

###環境
Windows10上でCentOS7を稼働

###インストールしたいMySQL
バージョン8.0

###目的
学習用に作成したJavaのSpringBootのプロジェクトをLinux環境にデプロイして起動したい


###苦労した点
####CUIが慣れていない
当方、Linux操作も慣れておらず、基本的な操作が見についていない。
よって、出回っている情報だと当方には不足している感が強い。

ていうか、初心者のくせにGUIじゃなくてCUIベースを使おうとしていたことにより、windowsで慣れた直感的な操作ができないので戸惑うことが多かった。

でも勉強になりますけどね！


####ダウンロードができない
VirtualBox内のCentOS7からインターネットに接続するときのイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/1cc86471-0e65-6739-d0f6-b4dffae25ba1.png)

これはホントにイメージね！（正しいかはわかりません）

そもそもWindowsで普通に作業をしていたら気にすることもないし～

おそらくになるけど、なにかダウンロードする時は普通は以下のようなイメージ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/f6d03de4-019e-dba2-212e-d4c55f3e449c.png)

でもCentOS7では以下間にWindowsが入ってくるから、なにか設定が必要になるのかなと考えています。
（間違っていたらご指摘いただけると幸いです^^）

###MySQLのインストール手順
公式サイトより
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

>
Adding the MySQL Yum Repository
First, add the MySQL Yum repository to your system's repository list. This is a one-time operation, which can be performed by installing an RPM provided by MySQL. Follow these steps:
>
Go to the Download MySQL Yum Repository page (https://dev.mysql.com/downloads/repo/yum/) in the MySQL Developer Zone.
>
Select and download the release package for your platform.
>
Install the downloaded release package with the following command, replacing platform-and-version-specific-package-name with the name of the downloaded RPM package:

1. MySQL Yumリポジトリをリポジトリリストに追加しなあかん
1. 何かをダウンロードしなあかん
1. ダウンロードしたやつをインストールしなあかん

ということですね。

問題はここ。ダウンロード！


###どこにダウンロードされるかが問題だ
普通にwindowsでhttps://dev.mysql.com/downloads/repo/yum/ にアクセスしてダウンロードしても、windowsにダウンロードされる。
だからCentOS7に入ってない
だからCentOS7にインストールできない

###LinuxにCUIからどうやってダウンロードする？
まず思いついたのが、FTPでwindowsにダウンロードしたものを転送する。
でもそれLinuxの操作じゃないからあかんやん。

てかyumとかのコマンドで普通はダウンロードとかインストールとかするはずだからlinuxからインターネット接続できるはずだからダウンロードもできるはずやから、なんとかlinuxからコマンドでダウンロードしたい！

そこで問題になったのが
1. ダウンロードコマンド
1. 名前解決
1. ダウンロード先のディレクトリ

###ダウンロードコマンド

```
wget [ダウンロードリンク先URL]
か
curl [ダウンロードリンク先URL]
```

が使えるっぽい。
自分はwget使いました

だいたいダウンロードボタンのところで「リンク先をコピー」とやればURLは大丈夫のハズ

###名前解決
ダウンロードのコマンドを実行したら
名前解決ができていないというエラー

```
could not resolve host dev.mysql.com
```

これのせいでダウンロードできない。

そこでいろいろ見て試したことは
* CentOS7のIPv6の無効化
* DNSサーバの設定

```
// IPv6無効化
$ echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
$ echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

// DNS設定
$ nmcli c modify eth0 ipv4.dns 8.8.8.8
// ネットワーク再起動
$ systemctl restart network
// 設定確認
$ nmcli d show eth0

// インターネットに接続できてるかの確認
$ ping www.google.com
```

###キャッシュが残っているなら削除しないと行けない
すでにMySQLが入っている場合や、失敗した作業があったりでなにかyumのキャッシュというのでしょうか、そういうのが残っているとエラーが発生するようです。

なので次を実行して競合しないようにする。

```
// インストール済みのMYSQLの確認
$ yum list installed | grep mysql

// 削除
$ yum remove mysql*
```


###再度ダウンロードのコマンドを実行するとうまくいきましたけど、、、
ダウンロードディレクトリはどこぞ？？？

ちょっとわかりませんでした。。。（誰か教えて～！）

のでtmpディレクトリに移動してそこでコマンド実行して、tmpにダウンロードするようにしました。

```
$ ls /tmp
mysql80-community-release-el7-3.noarch.rpm // これがダウンロードできた！！
```

もうすでに達成感！（いや、まだやろい！）

tmpディレクトリ内でインストールコマンドを実行

```
$ yum install -y install mysql-community-server
```

###インストールできたか確認

```
$ mysql --version
mysql  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
```

やっとだぜ・・・
・・・インストールだけでどんだけかかんねん・・・・



とりあえず、ダウンロードどうやんねんとか名前解決ってなんやねんってなる方の参考に慣ればと思います。

また、記事の内容に間違いなどありましたらお手数ですがご指摘いただければ幸いです。

ご質問がある方もどうぞコメント下さい。

よろしくお願いいたしますm(__)m