5
3

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 5 years have passed since last update.

バッチ1発でMySQLサーバーをインストール&構築する ~Windows10~

Last updated at Posted at 2019-10-07

目的

・LattePanda(Windows10)にMySQLServerを構築し量産したい
 ↓
・量産工数を少しでも減らすために、各デバイスでの環境構築はなるべく自動化したい
 ↓
・MySQLをバッチで一発インストールできるようにしたい (可能なら同時にDBも構築したい)

前置き

上記の方法を調べても日本語での情報は皆無。
スタックオーバーフロー等で英語圏にそれっぽいQAがあるが、記述されているサンプルではどれも上手くいかないものばかり。
かなりレアケースだと思いますが、試行錯誤したら実現できたので共有します。

方法

  1. MySQL公式より必要なバージョンのインストーラーをダウンロードしておく。(当方ver8.0.17)
  2. バッチファイルを作成。(以下動作確認済みサンプルコード)
     →適宜バージョンやパスを変更
mysql_installer.bat
# MySQLバージョン 8.0.17

# ※管理者として実行
#「mysql-installer-community-8.0.17.0.msi」と「dumpファイル」を事前にCドライブ直下に配置
# passwdやFilePathは適宜変数化
# 構築環境に合わせてオプションを変更する

@echo off
echo Installing MySQL Server. Please wait...

msiexec /i "C:\mysql-installer-community-8.0.17.0.msi" /qn /norestart
echo Configurating MySQL Server...

"C:\Program Files (x86)\MySQL\MySQL Installer for Windows\MySQLInstallerConsole.exe" community install server;8.0.17;x64:*:type=config;openfirewall=true;generallog=true;binlog=true;serverid=3306;enable_tcpip=true;port=3306;rootpasswd=PASS; -silent
echo MySQL has been installed successfully!

# 環境変数にPathを追加
setx PATH "C:\Program Files\MySQL\MySQL Server 8.0\bin"

echo Restoring database ...
mysql -u root -pPASS -e "CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"

mysql -u root -pPASS DBNAME --binary-mode < "C:\dump_file.sql"
echo Database has been restored successfully!
pause
  1. 1で取得したインストーラーとdumpファイルを任意の位置(サンプルはCドライブ直下)に配置
  2. バッチファイルを管理者として実行

流れ

  1. 「msiexec /i」 にてインストーラーを実行
  2. 「"C:\Program Files (x86)\MySQL\MySQL Installer for Windows\MySQLInstallerConsole.exe" community install」 でMysqlServerインストール
  3. 「setx PATH」 で環境変数にmysqlのpathを追加
  4. 「mysql -u root -pPASS -e」 にて事前にDBを作成
  5. 「mysql -u root -pPASS DBNAME --binary-mode <」 にてリストア(4で作成したDBを記述)

最後に

肝となるのは「MySQLInstallerConsole.exe」です。
こちらにリファレンスがあるので、環境に応じてオプションなどを変更してください。
上記コマンド実行時に 「community」がないと商用版がインストールされ、無料では使えないと思われます。
スタックオーバーフローの海外QAにはconfigほにゃららを使ったやり方が散見されますが、どれも上手くいきませんでした。

なんとか成功したやり方なので、他に良いやり方があれば是非ご教授ください。

5
3
1

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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?