Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@stylejp

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

More than 1 year has passed since last update.

目的

・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ほにゃららを使ったやり方が散見されますが、どれも上手くいきませんでした。

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

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
stylejp
IoTシステム開発やデータ分析に携わる一方、統計解析におけるセールスや自分のビジネスを企画など広く学んでいます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?