4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows10にzipでMySQLをインストールする方法

Last updated at Posted at 2020-04-22
  • 環境
    • Windows 10 Pro 64bit バージョン1909
    • GitBash(mintty 3.1.0)

インストーラを使うとなぜかうまくいかないことがあるのでzipでインストールする。
インストーラーを使う方法はこちら

zipをダウンロードして配置する

  1. MySQL :: Download MySQL Community Server からzipファイルをダウンロードする。
    • 今回は、mysql-8.0.19-winx64.zipをダウンロード
  2. 任意の場所に解凍する
    • 今回は、/c/apps/mysql-8.0.19-winx64/に配置

PATHを設定する

# 1. MySQLのバージョンを確認して場所を確認する
$ /c/apps/mysql-8.0.19-winx64/bin/mysql --version
C:\apps\mysql-8.0.19-winx64\bin\mysql.exe  Ver 8.0.19 for Win64 on x86_64 (MySQL Community Server - GPL)

# 2. PATHの設定を追記する
$ vi ~/.bash_profile
$ cat ~/.bash_profile
...省略...
export MYSQL_HOME="/c/apps/mysql-8.0.19-winx64"
export PATH=$PATH:$MYSQL_HOME/bin
...省略...

# 3. 設定を反映する
$ source ~/.bash_profile

# 4. PATHが設定されたことを再度バージョンで確認する
$ mysql --version
C:\apps\mysql-8.0.19-winx64\bin\mysql.exe  Ver 8.0.19 for Win64 on x86_64 (MySQL Community Server - GPL)

設定ファイルを作成する

文字コードやポートなどの必要な設定をmy.iniを作成して設定する

my.iniファイルを新規作成して設定を書く
$ vi $MYSQL_HOME/my.ini

$ cat $MYSQL_HOME/my.ini
[mysqld]
character-set-server=utf8mb4
collation_server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
skip-character-set-client-handshake
port=3306
character-set-server=utf8mb4
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4

MySQLのインストールとサービスへの登録を行う

  1. GitBashを管理者権限で起動する
    • コマンドプロンプトでも同じように操作できる
  2. データフォルダの初期化を行う
  3. dataフォルダが作成されたことを確認する
  4. dataフォルダ直下にある{PC名}.errを開きMySQLへの初回ログインパスワードを確認する
    • パスワードには/)が入っていることがあるので漏らさないように注意する
  5. MySQLのインストールとサービスへの登録を行う
  6. サービスとして登録されたことを確認する
    • [サービス]ダイアログでも確認できる(ダイアログは、Win + R > services.mscで表示できる)
# 2. データフォルダの初期化を行う
$ mysqld --defaults-file=$MYSQL_HOME/my.ini --initialize

# 3. dataフォルダが作成されたことを確認する
$ ls -la $MYSQL_HOME/data/
total 168016
drwxr-xr-x 1 ponsuke 1049089        0  4月 22 13:07 '#innodb_temp'/
drwxr-xr-x 1 ponsuke 1049089        0  4月 22 13:23  ./
drwxr-xr-x 1 ponsuke 1049089        0  4月 22 13:44  ../
-rw-r--r-- 1 ponsuke 1049089       56  4月 22 13:03  auto.cnf
...省略...

# 4. dataフォルダ直下にある{PC名}.errを開きMySQLへの初回ログインパスワードを確認する
$ cat $MYSQL_HOME/data/PCNAME.err | grep password
2020-04-22T04:03:02.864343Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uU1/ryauqrf6

# 5. MySQLのインストールとサービスへの登録を行う
$ mysqld --install MySQL80 --defaults-file=$MYSQL_HOME/my.ini
Service successfully installed.

# 6. サービスとして登録されたことを確認する
$ sc query MySQL80

SERVICE_NAME: MySQL80
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 1077  (0x435)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

MySQLにログインする

  1. MySQLを起動する
    • [サービス]ダイアログでも起動できる(ダイアログは、Win + R > services.mscで表示できる)
  2. MySQLにログインする
# 1. MySQLを起動する
$ sc start MySQL80

SERVICE_NAME: MySQL80
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x1
        WAIT_HINT          : 0x1f40
        PID                : 14596
        FLAGS              :

# 2. MySQLにログインする
$ winpty mysql -u root -p -P 3306
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.19

Copyright (c) 2000, 2020, 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>

rootパスワード変更と文字セットの確認を行う

  1. rootのパスワード変更を行う
  2. my.iniに設定した文字セットが設定されていることを確認する
-- 1. rootのパスワード変更を行う
mysql> set password='root';
Query OK, 0 rows affected (0.01 sec)

-- 2. my.iniに設定した文字セットが設定されていることを確認する
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------+
| Variable_name            | Value                                       |
+--------------------------+---------------------------------------------+
| character_set_client     | utf8mb4                                     |
| character_set_connection | utf8mb4                                     |
| character_set_database   | utf8mb4                                     |
| character_set_filesystem | binary                                      |
| character_set_results    | utf8mb4                                     |
| character_set_server     | utf8mb4                                     |
| character_set_system     | utf8                                        |
| character_sets_dir       | C:\apps\mysql-8.0.19-winx64\share\charsets\ |
+--------------------------+---------------------------------------------+
8 rows in set, 1 warning (0.01 sec)

データベースを作成する

  1. データベースを作成する
  2. データベースの文字セットを確認する
  3. データベース用のユーザーを作成する
  4. 作成したユーザーに権限を付与する
  5. 作成したユーザーを確認する
-- 1. データベースを作成する
mysql> create database sampledb;
Query OK, 1 row affected (0.01 sec)

-- 2. データベースの文字セットを確認する
mysql> select default_character_set_name, default_collation_name from information_schema.schemata where schema_name = 'sampledb';
+----------------------------+------------------------+
| DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+----------------------------+------------------------+
| utf8mb4                    | utf8mb4_general_ci     |
+----------------------------+------------------------+
1 row in set (0.01 sec)

-- 3. データベース用のユーザーを作成する
mysql> create user 'sampleuser'@'localhost' identified by 'sampleuser';
Query OK, 0 rows affected (0.01 sec)

-- 4. 作成したユーザーに権限を付与する
mysql> grant all privileges on sampledb.* to 'sampleuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)

-- 5. 作成したユーザーを確認する
mysql> select user, host, plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| sampleuser       | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

-- 6. ログアウトする
mysql> quit
Bye

-- 7. 作成したユーザーでログインできることを確認する
$ winpty mysql -u sampleuser -p -P 3306
Enter password: *********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.19 MySQL Community Server - GPL

Copyright (c) 2000, 2020, 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>
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?