りんちゃんの日記

日常を書き留めていきます。

mysql 8.0のインストール

1. MySQLのダウンロード

MySQL :: Download MySQL Community Server

「Go to Download Pages」をクリックする。

f:id:rinkaistar:20220301233644p:plain

MySQL :: Download MySQL Installer

mysql-installer-community-8.0.28.0.msi」をダウンロードする。

f:id:rinkaistar:20220301233523p:plain

※Download時にOracleプロファイルのログインを求められるのでプロファイルを持っていなければ作成する

 

2. インストール

https://www.dbonline.jp/mysql/install/index2.html

を参照する。

mysql-installer-community-8.0.28.0.msi」を実行する。
「Developer Default」を選択し、「Next」を選択する。

f:id:rinkaistar:20220304124418p:plain


3. Pathの設定

コントロールパネル->システム->システムの詳細設定を選択し

システムのプロパティ画面で「環境変数」を選択する。

f:id:rinkaistar:20220301234625p:plain

 

システム環境変数の「Path」を選択し、「編集」を選択する。

f:id:rinkaistar:20220301234850p:plain

 

「新規」を選択し、
「C:\Program Files\MySQL\MySQL Server 8.0\bin」を入力して

「OK」を選択する。

f:id:rinkaistar:20220301235101p:plain

 

UTF8じゃなくてutf8mb4が推奨される理由
https://dev.mysql.com/doc/refman/8.0/ja/charset-unicode-utf8.html


UTF8とutf8mb4の違い
https://penpen-dev.com/blog/mysql-utf8-utf8mb4/

https://proengineer.internous.co.jp/content/columnfeature/6653

https://oki2a24.com/2018/10/21/how-to-set-mysql-8-cnf-to-utf8mb4/


4. my.iniを編集


C:\ProgramData\MySQL\MySQL Server 8.0
my.iniをいったん、デスクトップにコピーして編集し
再度、C:\ProgramData\MySQL\MySQL Server 8.0
にコピーして反映させる

 

100行目付近に
## UTF 8 mb4 Settings
init-connect='SET NAMES utf8mb4'
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
skip-character-set-client-handshake

146行目(デフォルトで1の設定なので修正不要)
lower_case_table_names=1


296行目(デフォルトは4M)
max_allowed_packet=1G


最終行に記載
transaction-isolation=READ-COMMITTED


コントロールパネル->管理ツール->サービス
MySQL80を再起動

 

確認方法
show variables like "chara%";
show variables where variable_name='lower_case_table_names';
show variables like 'max_allowed_packet';
SELECT @@GLOBAL.transaction_isolation, @@transaction_isolation;


■utf8の場合
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake

+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8mb3                                                 |
| character_set_connection | utf8mb3                                                 |
| character_set_database   | utf8mb3                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8mb3                                                 |
| character_set_server     | utf8mb3                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+

 

■utf8mb4の場合
init-connect='SET NAMES utf8mb4'
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
skip-character-set-client-handshake

+--------------------------+---------------------------------------------------------+
| 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     | utf8mb3                                                 |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+

 

 

5. ユーザ作成


rootでmysqlに接続する
> mysql --user=root --password=パスワード

select host,user from mysql.user;

 


CREATE USER 'aaa'@'127.0.0.1' IDENTIFIED BY 'aaa';
GRANT ALL PRIVILEGES ON * . * TO 'aaa'@'127.0.0.1';
FLUSH PRIVILEGES;


CREATE USER 'aaa'@'localhost' IDENTIFIED BY 'aaa';
GRANT ALL PRIVILEGES ON * . * TO 'aaa'@'localhost';
FLUSH PRIVILEGES;

 


GRANT ALL PRIVILEGES ON * . * TO 'root'@'127.0.0.1';
FLUSH PRIVILEGES;

 

 

CREATE DATABASE abeshi;
use abeshi;
create table abc (id int);
insert into abc(id) values (1);
insert into abc(id) values (2);
insert into abc(id) values (3);
select * from abc;

 

insert into abc(id) values (4);

 

6. MySQL Dump手順


>mysqldump -u root -p abeshi > C:\Users\root\Desktop\abeshi.sql
Enter password: [パスワード入力]

insert into abc(id) values (4),(5);

リストア
>mysql -u root -p abeshi < C:\Users\root\Desktop\abeshi.sql

 

 

7. 複数インスタンスの起動

C:\ProgramData\MySQL\
に移動し
MySQL Server 8.0」を「MySQL Server 9.0」で複製する。

f:id:rinkaistar:20220304123316p:plain

 

「C:\ProgramData\MySQL\MySQL Server 9.0」に移動し、my.iniの[mysqld]句の

port=3306

port=3307

 

datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data


datadir=C:/ProgramData/MySQL/MySQL Server 9.0\Data

に修正する。

 

サービス登録
※管理者権限でコマンドプロント or PowerShellを起動し、サービス登録コマンドを実行する。
>mysqld --install MySQL90 --defaults-file="C:\ProgramData\MySQL\MySQL Server 9.0\my.ini"

f:id:rinkaistar:20220304123733p:plain



「MySQL90」を選択し、実行ファイルのパスが

「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 9.0\my.ini" MySQL90」

になっていることを確認する。

f:id:rinkaistar:20220304123850p:plain

 

再起動してサービスが正常起動するか確認する

 

起動方法
>mysql --user=root --password=XXXXXXXX --port=3306

>mysql --user=root --password=XXXXXXXX --port=3307

 

 

MySQL 9.0 Command Line Client - Unicode」を使用する場合

ショートカットを複製し、リンク先を

「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 9.0\my.ini" "-uroot" "-p" "-P3307" "--default-character-set=utf8mb4"」

と「-P3307」を追加する。

f:id:rinkaistar:20220304135539p:plain