MySQL初心者奮闘記１～インストールから動作確認まで～

MySQLを使いたいなぁと思いつつ、しばらく放置していました。

## Windows10にMySQLをインストール
ほぼ参考資料どおり。

1. [MySQL](https://www.mysql.com/jp/)からダウンロードを選択
2. ``MySQL Community (GPL) Downloads``をクリック
3. ``MySQL Community Server``をクリック
4. ``Go To Download Page``をクリック
5. OSが``Microsoft Windows``であることを確認 
6. 下側の``Download``をクリック
7. ``No thanks, just start my download``をクリックして、登録せずにダウンロード
8. ダウンロードしたインストーラーを起動。
9. ``Developer Default``を選択し、``Next``をクリック
10. インストールの内容が表示されるので、``Execute``をクリック 
11. インストールが終わったら``Next``をクリック
12. Type and Networkingで通信手段を確認、設定したら``Next``をクリック
13. アカウント認証設定をして``Next``をクリック
14. パスワードを設定して``Next``をクリック
15. windowsサービスの設定をして``Next``をクリック
16. ``Execute``をクリックし、終わったら``Finish``をクリック
17. ``Next``をクリック
18. MySQL Routerの設定をして``Finish``をクリック
19. ``Next``をクリック
20. rootユーザーのパスワードを入力(14で設定したもの)し、``Check``をクリック
21. statusがConnection succeededとなるのを確認して、``Next``をクリック
22. ``Execute``をクリックし、終わったら``Finish``をクリック
23. ``Next``をクリック
24. ``Finish``をクリック 
25. システム環境変数の編集を起動
26. 環境変数のPathを設定(mysql.exeがあるフォルダを追加)
27. コマンドプロンプトで``mysql --version``を入力
28. ``mysql  Ver 8.0.26 for Win64 on x86_64 (MySQL Community Server - GPL)``などバージョンが表示されればインストール完了


# MySQLを起動
MySQLのバージョンを忘れたときは、[service.mscからバージョンを確認](https://www.projectgroup.info/documents/MySQL/mysql_000005.html)

```python:コマンドプロンプト
C:\Users>net start MySQL80
システム エラー 5 が発生しました。

アクセスが拒否されました。
```

システムエラー5で拒否されたときは[管理者権限でコマンドプロンプトを開く](https://so-kai-app.sakura.ne.jp/blog/2387/2017/09/01/)

```python:コマンドプロンプト
C:\WINDOWS\system32>net start MySQL80
MySQL80 サービスを開始します...
MySQL80 サービスは正常に開始されました。

C:\WINDOWS\system32>mysql -u root -p
Enter password: **************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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.
```

# データベース作成
```python:コマンドプロンプト
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.06 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test               |
| world              |
+--------------------+
7 rows in set (0.02 sec)
```

# データベースに入る
```python:コマンドプロンプト
mysql> USE test;
Database changed
```

# テーブルを作成する
```python:コマンドプロンプト
mysql> show tables;
Empty set (0.03 sec)

mysql> CREATE TABLE test_users (id INT AUTO_INCREMENT, name TEXT, PRIMARY KEY (id)) DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.51 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test_users     |
+----------------+
1 row in set (0.00 sec)

# テーブル構造を確認
mysql> DESCRIBE test_users;
+-------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra          |
+-------+------+------+-----+---------+----------------+
| id    | int  | NO   | PRI | NULL    | auto_increment |
| name  | text | YES  |     | NULL    |                |
+-------+------+------+-----+---------+----------------+
2 rows in set (0.03 sec)
```

# データ作成
```python:コマンドプロンプト
mysql> SELECT * From test_users;
Empty set (0.02 sec)

mysql> insert into test_users (name) values ('テスト１');
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * From test_users;
+----+----------+
| id | name     |
+----+----------+
|  1 | テスト１ |
+----+----------+
1 row in set (0.00 sec)
```
# MySQLを停止
```python:コマンドプロンプト
mysql> quit
Bye

C:\WINDOWS\system32>net stop MySQL80
MySQL80 サービスを停止中です.
MySQL80 サービスは正常に停止されました。
```

# 参考資料
[MySQLインストール](https://www.dbonline.jp/mysql/install/)
[MySQLの開発環境を用意しよう（windows）](https://prog-8.com/docs/mysql-env-win)
[mysql.exeを起動できません！](https://teratail.com/questions/88813)
[【MySQL, 開発環境】MySQLのインストールと初期設定](https://qiita.com/karakuri-t910/items/301a4585c54f4cab34a2)
[[Windows10] コマンドプロンプト を 管理者権限 で 起動する方法](https://so-kai-app.sakura.ne.jp/blog/2387/2017/09/01/)
[MySQL を起動・停止する](https://www.projectgroup.info/documents/MySQL/mysql_000005.html)
[【MySQL入門】MySQLの起動・停止・再起動　基礎的なコマンドまとめ](https://style.potepan.com/articles/18698.html)
[MySQLでデータベースを作成しよう](https://prog-8.com/docs/mysql-database-setup)
[テーブルを作成する(CREATE TABLE文)](https://www.dbonline.jp/mysql/table/index1.html)