Windows10にxamppをインストールすると、デフォルトではCドライブの「\xampp\mysql」ディレクトリにMySQLがインストールされる。
そして、MySQLのデータディレクトリは「C:\xampp\mysql\data」ディレクトリになるはずだ。
つまり、MySQLで作成したデータベースやテーブルは、「C:\xampp\mysql\data」に保持されることになる。
今回、xamppのインストール時にデフォルトで設定されるMySQLのデータフォルダを変更した。その手順をまとめておく。
MySQLのデータディレクトリは設定ファイルで指定する
MySQLのデータディレクトリは、MySQL設定ファイル(オプションファイルあるいは構成ファイルとも呼ばれる)によって指定される。
MySQL設定ファイルとは「my.ini」である。
MySQL設定ファイルの場所
では、このMySQL設定ファイルはどこにあるのか?
MySQLが読み込む設定ファイルは、MySQL コマンド行ツール(mysql.exe デフォルトでは、C:\xampp\mysql\bin ディレクトリにある)に「--help
」オプションを追加して起動すると表示される。
下記に例を示す。
C:\>C:\xampp\mysql\bin\mysql.exe --help
C:\xampp\mysql\bin\mysql.exe Ver 15.1 Distrib 10.4.11-MariaDB, for Win64 (AMD64), source revision 7c2c420b70b19cc02b5281127205e876f3919dad
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Usage: C:\xampp\mysql\bin\mysql.exe [OPTIONS] [database]
Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\xampp\mysql\my.ini C:\xampp\mysql\my.cnf C:\xampp\mysql\data\my.ini C:\xampp\mysql\data\my.cnf
The following groups are read: mysql mariadb-client client client-server client-mariadb
The following options may be given as the first argument:
:
以下省略
:
MySQL設定ファイルは、「Default options are read from the following files in the given order:」という記述の後に示されている。
この例では、MySQL設定ファイルは下記の優先順位で読み込まれる。
- C:\Windows\my.ini
- C:\Windows\my.cnf
- C:\my.ini
- C:\my.cnf
- C:\xampp\mysql\my.ini
- C:\xampp\mysql\my.cnf
- C:\xampp\mysql\data\my.ini
- C:\xampp\mysql\data\my.cnf
MySQL設定ファイルの編集
MySQLのデータディレクトリへのパスは、サーバーシステム変数「datadir」で指定する。
例えば、データディレクトリを「D:\data」にする場合、下記のように指定する。
datadir=D:/data
MySQL設定ファイルのサンプル
MySQL設定ファイルはサンプルが用意されている。
0から作成するのは、なにかと骨が折れるので、設定ファイルのサンプルをベースに、必要な設定のみをカスタマイズすると効率的だ。
MySQL設定ファイルのサンプルは、「MySQLのインストールディレクトリ\mysql\bin」にあるはずだ。
デフォルトでは、「C:\xampp\mysql\bin」ディレクトリに「my.ini」があるはずなので確認して欲しい。
また、「C:\xampp\mysql\data」ディレクトリにも「my.ini」がある。(筆者の環境では存在した)
参考資料
MySQLの設定ファイルに関しては、下記が参考になる、適宜参照すること。
- 4.5.1 mysql — MySQL コマンド行ツール
- MySQLのコマンド行ツール(クライアントプログラム)に関するマニュアル。
- 5.1.4 サーバーシステム変数
- MySQLのサーバーシステム変数一覧。
MySQLデータの引越し
MySQLのデータディレクトリの変更設定が完了したら、次は既存のデータを移設する。
MySQLデータの引越しは意外に単純で、旧データディレクトリにあるファイル一式を、新しいデータディレクトリにコピーすることで実現可能だ。
例えば、デフォルトでは、「C:\xampp\mysql\data」ディレクトリ以下にMySQLのデータが保存されている。
ここにあるファイル一式をディレクトリごと、新しいデータディレクトリにコピーするのだ。
データを移設する際は、MySQLサービスを停止すること。
あらためて下記に手順をまとめる。
- MySQLサービスを停止する
- MySQL設定ファイルをカスタマイズする
- 新しいデータディレクトリに旧データ一式をコピーする
- MySQLサービスを起動する
参考資料
- 5.3.1 複数のデータディレクトリのセットアップ
- MySQLデータディレクトリの移設に関するマニュアル。