有効な無駄知識を…?

ITや情報系のネタ中心に書いていくつもりですが…。時々思い出したように更新。

XAMPPのデータベースをMySQLに置き換える

2017-07-12 14:09:09 | 情報系ネタ

XAMPPのデータベースをMySQLに置き換える

はじめに

本稿では、XAMPPの最新版(2017-5-12時点 7.1.4)で、データベースをMariaDBからMySQLに置き換える方法について記します。

PHPの開発では、ApacheやPHPをひとまとめにしたXAMPPを利用することがあります。XAMPPにはウェブサーバ、データベースなども同梱されています。

XAMPP -1.8.3/5.6.3-5.6.12ではMySQLが、XAMPP 5.5.33-5.5.38/5.6.14-ではMariaDBが採用されています。 そのため、XAMPPの最新版ではMySQLを利用することができません。

ここでは、MySQLの最新機能を利用するため、MariaDBをMySQLへ置き換えることを考えます。

制限事項

MariaDBをMySQLへ置き換えるにあたり、幾つか制限があります。

  1. XAMPPの最新版(2017-5-12時点 7.1.4)のみ、動作することを確認しています。
  2. ログが既定の場所に出力されません(回避方法あり)。
  3. MySQLのサービス登録は試していません。
  4. その他、私が認識していない問題がある可能性があります。

MySQLのダウンロード

MySQLのウェブページ("https://dev.mysql.com/downloads/mysql/")から、MySQLの最新版をダウンロードします(今回は、5.7.18をダウンロードします)。

インストーラ付き、32bit/64bitなど複数のファイルがダウンロードできますが、「Windows (x86, 32-bit), ZIP Archive」をダウンロードします(64bitは、XAMPPコントロールパネルからMySQLをシャットダウンできません)。

MariaDBの待避

今までのMariaDBのファイルを移動することで退避します。

これからの操作では、XAMPPのすべてのサービスを停止して下さい。

XAMPPをインストールしたフォルダに移動し、「mysql」というフォルダ名を「mysql_old」に変更します。

mysqlのコピー

ダウンロードしたMySQLの圧縮ファイル(mysql-*-win32.zip)を解凍します。

解凍したファイルはフォルダ(mysql-*-win32)ごと「【XAMPPインストール先】」移動し、フォルダ名を「mysql」に変更します。

データの移行

MariaDBのデータを、MySQLフォルダに移動します。移動対象は以下のファイル/フォルダです。(ファイル/フォルダ名が重複しないデータ全てです)

  • data
  • scripts
  • COPYING.LESSER
  • COPYING.thirdparty
  • CREDITS
  • EXCEPTION-CLIENT
  • my-huge.ini
  • my-innodb-heavy-4G.ini
  • my-large.ini
  • my-medium.ini
  • my-small.ini
  • mysql_installservice.bat
  • mysql_uninstallservice.bat
  • resetroot.bat
  • wsrep.ini

設定・スクリプトの編集

設定ファイルについても、基本的にMariaDBのものをコピーして使用します。

「【XAMPPインストール先】\mysql_old\bin\my.ini」を、「【XAMPPインストール先】\mysql\bin\my.ini」へ上書きコピーします。

コピー後、「【XAMPPインストール先】\mysql\bin\my.ini」の設定を一部修正します。

「key_buffer」のコメント化

MySQLでは、key_bufferという設定項目は無い(廃止になった?)ため、「key_buffer = 16M」の先頭に#を付けてコメント化します。

「innodb_additional_mem_pool_size」のコメント化

MySQLでは、innodb_additional_mem_pool_sizeという設定項目は無い(廃止になった?)ため、「innodb_additional_mem_pool_size = 2M」の先頭に#を付けてコメント化します。

起動確認とデータ修正

以上の設定で、MySQLが起動できることを確認し、その後データの修正を行います。

起動確認

コマンドプロンプトを起動し、「【XAMPPインストール先】\mysql\bin\」へ移動します。

移動後、mysqldコマンドを実行します。実行には、以下の通り「--defaults-file="【XAMPPインストール先】\mysql\bin\my.ini"」「--console」のコマンドオプションを付けます。

> cd 【XAMPPインストール先】\mysql\bin\
> mysqld --defaults-file="【XAMPPインストール先】\mysql\bin\my.ini" --console

異常終了せず、実行中の状態になれば良好です。

データ修正

起動確認をしたまま(コマンドプロンプトを開いたまま)で、もう1つコマンドプロンプトを起動し、「【XAMPPインストール先】\mysql\bin\」へ移動します。

移動後、mysql_upgdateコマンドを実行します。実行には、以下の通り「-u root」「-p」のコマンドオプションを付けます。

> cd 【XAMPPインストール先】\mysql\bin\
> mysql_upgdate -u root -p

mysql_upgdateコマンドを実行すると、パスワードの問いかけ(Enter password:)が出てきますが、初期設定は"なし"になっています(そのままEnterキーを押下)。

整合性チェックが終了すれば完了です。

起動確認のMySQLについても、CtrlキーとCキーの同時押し(Ctrl+C)で終了させてください。

MySQLの起動

設定が完了したため、MySQLを起動します。

通常のXAMPPと同様に、XAMPP Control Panelから、「Start」ボタンを押下することで起動できます。

ウェブブラウザから。"http://localhost/phpmyadmin"に接続すると、画面右側に起動しているデータベースのバージョンが表示されます。記載内容が「MySQL Community Server」となっていれば、MySQLサーバに接続できています。

付録:ログの出力

今回の方法では、MySQLのログがファイルに保存されないため、XAMPP Control Panelからサーバログを確認することができません。ログを確認するには以下の2つの方法があります。

Windowsのイベントビューアー

MySQLのログは、Windowsのアプリケーションイベントに記録されています。そのため、イベントビューアーを起動し、Windowsログ→Applicationから内容を確認することができます。

ただし、他のアプリケーションのログも記録されるため、あまり見やすくはありません。

起動オプションを指定したバッチファイルからMySQLを起動する

MySQLもログ出力機能を持っていますが、コマンドオプション「--log-error="【ファイル名】"」で指定する必要があります。 しかし、XAMPPにおけるMySQLの起動オプションは「--console」となっており変更できません。

XAMPPにはXAMPP Control Panelを使用するほかに、バッチファイルからMySQLを起動することができます。そのバッチファイルにて、ログ出力先を指定することで、ログをファイルに出力することができます。

バッチファイルは【XAMPPインストール先】にあります。【XAMPPインストール先】をエクスプローラーで開き、バッチファイル「mysql_start.bat」を右クリックします。右クリックメニューから「編集」を選択しファイルの内容を以下の通りに書き換えます。

変更前
mysql\bin\mysqld --defaults-file=mysql\bin\my.ini --standalone --console
変更後
rem mysql\bin\mysqld --defaults-file=mysql\bin\my.ini --standalone --console
mysql\bin\mysqld --defaults-file=mysql\bin\my.ini --log-error="mysql_error.log" --standalone

編集が終わったら、ファイルを保存します。

MySQLの起動には「mysql_start.bat」を実行することで、ログをファイルに出力した状態で起動できます。起動したらコマンドプロンプトを閉じても、MySQLは起動したままとなります(「mysql_end.bat」で終了できます)。

バッチファイルから起動した場合でも、XAMPP Control Panelは起動中の表示に変わります。XAMPP Control PanelからMySQLを終了させることもできます。

この場合は、XAMPP Control Panelからログを開くことができます。

『その他』 ジャンルのランキング
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« SSH接続にて、ed25519の公開... | トップ |   
最近の画像もっと見る

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。