- 環境
- Windows 10 Pro 64bit バージョン1909
- GitBash(mintty 3.1.0)
インストーラを使うとなぜかうまくいかないことがあるのでzipでインストールする。
インストーラーを使う方法はこちら
zipをダウンロードして配置する
-
MySQL :: Download MySQL Community Server からzipファイルをダウンロードする。
- 今回は、mysql-8.0.19-winx64.zipをダウンロード
- 任意の場所に解凍する
- 今回は、
/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のインストールとサービスへの登録を行う
- GitBashを管理者権限で起動する
- コマンドプロンプトでも同じように操作できる
- データフォルダの初期化を行う
-
--defaults-file
オプションを使用することで設定ファイルの場所を指定できる-
mysqld --verbose --help | grep defaults-file
でオプション内容を確認できる
-
- 参考
-
- dataフォルダが作成されたことを確認する
- dataフォルダ直下にある
{PC名}.err
を開きMySQLへの初回ログインパスワードを確認する- パスワードには
/
や)
が入っていることがあるので漏らさないように注意する
- パスワードには
- MySQLのインストールとサービスへの登録を行う
- サービスとして登録されたことを確認する
- [サービス]ダイアログでも確認できる(ダイアログは、
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にログインする
- MySQLを起動する
- [サービス]ダイアログでも起動できる(ダイアログは、
Win + R
>services.msc
で表示できる)
- [サービス]ダイアログでも起動できる(ダイアログは、
- MySQLにログインする
- GitBahsで
mysql
コマンドのログインを行うときはwinpty
をつけて使う -
{PC名}.err
で確認したパスワードを使ってログインする
- GitBahsで
# 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パスワード変更と文字セットの確認を行う
- rootのパスワード変更を行う
- 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. データベースを作成する
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>