WindowsにzipファイルのMySQLをインストールする方法

Windows に MySQL をインストールする方法として、インストーラーを実行してインストールする方法と ZIP ファイルを展開して手動で配置する方法があるのですが Linux のように自分の意図でフォルダを構成を決めたい場合には、後者の方法でインストールを行います。

スポンサーリンク

ZIP ファイルのダウンロード

このサイトから ZIP ファイルをダウンロードしてきます。
ここからダウンロード
Windows (x86, 64-bit), ZIP Archiveをクリックして mysql-X.X.X-winx64.zip をダウンロードします。

各フォルダの配置

ダウンロードしたファイルを解凍します。解凍後のファイル名を mysql-X.X.X とし C:¥temp フォルダにあるとします。
解凍したファイルを C:¥ に移動します。

move C:\temp\mysql-X.X.X C:\mysql-X.X.X

バージョンアップに対応するため Windows でシンボリックリンクを作成します。こうしておくと、切替時にシンボリックリンクを再作成するだけで切替や切戻しが簡単になります。

mklink /D C:\mysql C:\mysql-X.X.X

これで C:¥mysql フォルダが出来上がります。
データ格納用フォルダを作成します。バックアップが取りやすいように MySQL 本体とは別の場所で管理をします。

mkdir D:\MysqlData

ログ格納用フォルダも作成しておきます。

mkdir C:\mysql\logs

PATH の設定追加

MySQL の各種コマンドを実行するために PATH を通して起きます。環境変数に書いておいても良いし、コマンドプロンプトを開いたあとに下記コマンドを実行します。

SET PATH=%PATH%;C:\mysql\bin

データベースの初期化

データベースの初期化処理を実行します。

C:\mysql\bin\mysqld --initialize

C:¥mysql¥data フォルダの中身を先ほど作ったデータ格納用フォルダに移動します。

move C:\mysql\data\* D:\mysqldata

root のパスワードの確認

さっきデータ格納用フォルダに移動したファイルで Windows のコンピュータ名.err ファイルを探します。ファイルに rootパスワードの記載がある事を確認しておきます。「**********」の場所にパスワードが出力されています。

20YY-MM-DDT06:36:12.690946Z 1 [Note] A temporary password is generated for root@localhost: **********

MySQL 設定ファイルの作成

my.ini というファイル名で設定ファイルを作っておきます。置き場所はデータ格納用フォルダにします。内容は次の通りでできるだけシンプルにしておきます。

[mysqld]
# 各フォルダの設定
basedir = "C:/mysql"
datadir = "D:/mysqldata"
tmpdir = "C:/temp/mysql"

# エラーログファイルの指定
log_error = "C:/mysql/logs/mysqld_error.log"

# 文字コードを UTF-8 に指定
character_set_server = utf8
collation_server = utf8_general_ci

# 起動時に出力されるエラー対応
explicit_defaults_for_timestamp = true
secure_file_priv = "C:/temp/mysql/file"
ssl = false

[mysql]
# クライアントからのアクセス時の文字コードを UTF-8 に指定
default_character_set = utf8

起動から停止まで

とりあえず、起動してみます。–console オプションつけてコンソールにログを出すようにしておきます。

C:\mysql\bin\mysqld --defaults-file="D:\mysqldata\my.ini" --console

接続してみる。先ほど確認したパスワードを入力します。

C:\mysql\bin\mysql -h localhost -u root -p
Enter password: ************

停止してみます。パスワードは同じです。

C:\mysql\bin\mysqladmin shutdown -h localhost -u root -p
Enter password: ************

mysqladmin: connect to server at 'localhost' failed
error: 'Your password has expired. To log in you must change it using a client that supports expired passwords.'

エラーがでました。コンピュータ名.err ファイルで確認したパスワードは期限切れのワンタイムパスワードなので正式なパスワードを設定しておきます。

mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

SET PASSWORD FOR 'root'@'localhost'=PASSWORD('**********');

もう一度停止してみます。

C:\mysql\bin\mysqladmin shutdown -h localhost -u root -p
Enter password: ************

Windows のサービスに登録

Windows のサービスとして登録しておきます。

C:\mysql\bin\mysqld --install "MySQL5.7 Database Server" --defaults-file=D:\mysqldata\my.ini

サービスの表示内容を登録しておきます。

sc description "MySQL5.6 Database Server" "MySQL Community Server X.X.X / Windows (64-bit), ZIP Archive"

なんか失敗した場合は削除して再登録します。削除時のコマンドです。

mysqld --remove "MySQL5.7 Database Server"

サービス起動と停止です。

net start "MySQL5.7 Database Server"
net stop "MySQL5.7 Database Server"

以上で一連作業完了です。サービスの起動設定などは通常と同じように設定しておけば再起動時にも安心です。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク