Windows 10 上に Scoop(https://scoop.sh/)で MySQL 5.7 をインストールして、MySQL サーバを起動するまでの手順を記載する。
MySQL サーバは、サービスに登録しない前提とする。
Scoop のインストール手順は、割愛する。
%USERPROFILE%\scoop\apps\mysql57\current\my.ini
原因はわからないが、ソフトウェア RAID との相性あたりがあやしい。
発端は、データベースの初期化で失敗する事象が発生したことであった。
データベース初期化コマンドを実行後、data ディレクトリの BLACK.err ファイルに以下のエラーが出力されていた。
上記以外に「innodb_use_native_aio=0」という設定をしてみたが、効果がなかった。
「innodb_flush_method」に設定可能な値は、「async_unbuffered」(デフォルト値)、「normal」および、「unbuffered」であり、「unbuffered」の場合は、効果がなく、最終的に効果があったのが、「normal」であった。
Windows Event に出力するには、MySQL サーバを管理者権限で起動する必要がある。
今回は、サービス化せず、コマンドラインのみで利用する為、ログは、すべてコンソールに出力される。
ログには、以下のようなエラー出力となる。
MySQL サーバは、サービスに登録しない前提とする。
Scoop のインストール手順は、割愛する。
・ Scoop に「versions」バケットを追加
scoop bucket add versions
・ MySQL 5.7 をインストール
確認した時点では、バージョン 5.7.29 であった。scoop update
scoop install mysql57
・ MySQL 設定ファイルを修正
「ユーザ名」は、適切な値に変更すること。%USERPROFILE%\scoop\apps\mysql57\current\my.ini
[mysqld]
datadir=C:/Users/ユーザ名/scoop/persist/mysql57/data
log_syslog=0
explicit_defaults_for_timestamp=1
innodb_flush_method=normal
[client]
user=root
・ データベースを初期化
%USERPROFILE%\scoop\persist\mysql57\data ディレクトリ内に、ファイルがあった場合は、すべて削除してから、以後の手順を行う。mysqld --initialize-insecure
・ データベースを起動
mysqld --console
以下、発生した問題について記載する。・ 「innodb_flush_method=normal」について
この件に関しては、当方の環境が一般的とは言えないため、その他の環境で必ず発生するわけではない。原因はわからないが、ソフトウェア RAID との相性あたりがあやしい。
発端は、データベースの初期化で失敗する事象が発生したことであった。
データベース初期化コマンドを実行後、data ディレクトリの BLACK.err ファイルに以下のエラーが出力されていた。
2020-03-14T05:25:57.081780Z 0 [ERROR] InnoDB: Operating system error number 87 in a file operation.
2020-03-14T05:25:57.085927Z 0 [ERROR] InnoDB: File .\ib_logfile101: 'aio write' returned OS error 187. Cannot continue operation
2020-03-14T05:25:57.089968Z 0 [ERROR] InnoDB: Cannot continue operation.
上記以外に「innodb_use_native_aio=0」という設定をしてみたが、効果がなかった。
「innodb_flush_method」に設定可能な値は、「async_unbuffered」(デフォルト値)、「normal」および、「unbuffered」であり、「unbuffered」の場合は、効果がなく、最終的に効果があったのが、「normal」であった。
・ 「log_syslog=0」について
この設定は、MySQL のログを、Windows Event に出力しないようにする設定となる。Windows Event に出力するには、MySQL サーバを管理者権限で起動する必要がある。
今回は、サービス化せず、コマンドラインのみで利用する為、ログは、すべてコンソールに出力される。
ログには、以下のようなエラー出力となる。
2020-03-14T05:37:55.354648Z 0 [ERROR] Cannot open Windows EventLog; check privileges, or start server with --log_syslog=0
・ 「explicit_defaults_for_timestamp=1」について
ログに以下のような警告が出力されたため、それに従った。2020-03-14T05:34:27.417026Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).