NTFSパーティションにあるMySqlデータベースファイルをUbuntuとWindows(デュアルブート)の両方で使用したいと思います。機能しますか?何か問題がありますか?
はい、動作しますが、いくつかの癖があります。 MySQLはプラットフォーム間で同じファイル形式を使用するため、必要なのはデータディレクトリを共有することだけです。 1つの問題は、データディレクトリがubuntuの所有者およびグループとしてmysqlを必要とすることです。また、Windowsは大文字と小文字を区別せず、Linuxは大文字と小文字を区別するため、すべての名前を統一します。名前全体を小文字または大文字にしますが、それらを混在させないでください。
最初から最後まで;既に設定済みの場合は、設定に合わせて調整が必要になる場合があります。
sdXN
と呼びましょう)。MysqlデータディレクトリをUbuntuから新しいパーティションに移動します。
mkdir /{mountpoint}/mysql_data
Sudo mv /var/lib/mysql /{mountpoint/mysql_data
mv
を使用すると、権限が保存されます。
新しいmysqlディレクトリを作成します
Sudo mkdir /var/lib/mysql
NTFSパーティションを/var/lib/mysql
にマウントします。デバイス名を、NTFSパーティションを作成したときに取得した名前に変更します。
Sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
ブート時に自動マウントするには、パーティションのUUIDとロケールを見つけて/etc/fstab
を編集します。
ls -l /dev/disk/by-uuid
locale -a
Sudo gedit /etc/fstab
UUID={number_found_with_the_ls-l} /var/lib/mysql ntfs-3g uid=mysql,gid=mysql,umask=0077,locale={your_locale}.utf8 0 0
/etc/mysql/my.cnf
の 'datadir'パスを/var/lib/mysql/mysql_data
を指すように変更します
Mysqlサーバーを起動してテストします。
Windows構成ファイル(my.ini
)を編集し、 'datadir'をX:/mysql_data
に設定します(Windowsでマウントする場所のX:
を置き換えます)。
F.orgのトピック1442148 からコンパイル。
Ubuntuバージョンが動作するようになりました。私はWindowsを持っていないので、部分的にテストされていません
以前にWindowsのみの環境にLinuxパーティションを追加した場合、わずかな微調整のみでデータベースを使用できます。ロングバージョン ここ 、ショートバージョン:
起動時にmount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
を実行する必要があります(fstabを使用してWindowsドライブを/media/windows
にマウントすると仮定します)。
Innodbのログサイズチェックを回避するには、ubuntuパーティションのinnodbログを移動する必要があります。 my.cnf
で、innodb_log_group_home_dir = /var/log/mysql
を追加して、ログがmysqlエラーログの横に移動するようにします。