1. MySQLのダウンロード
MySQL :: Download MySQL Community Server
「Go to Download Pages」をクリックする。
MySQL :: Download MySQL Installer
「mysql-installer-community-8.0.28.0.msi」をダウンロードする。
※Download時にOracleプロファイルのログインを求められるのでプロファイルを持っていなければ作成する
2. インストール
https://www.dbonline.jp/mysql/install/index2.html
を参照する。
「mysql-installer-community-8.0.28.0.msi」を実行する。
「Developer Default」を選択し、「Next」を選択する。
3. Pathの設定
コントロールパネル->システム->システムの詳細設定を選択し
システムのプロパティ画面で「環境変数」を選択する。
システム環境変数の「Path」を選択し、「編集」を選択する。
「新規」を選択し、
「C:\Program Files\MySQL\MySQL Server 8.0\bin」を入力して
「OK」を選択する。
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」で複製する。
「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"
「MySQL90」を選択し、実行ファイルのパスが
「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 9.0\my.ini" MySQL90」
になっていることを確認する。
再起動してサービスが正常起動するか確認する
起動方法
>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」を追加する。