UbuntuとWindows(デュアルブート)の両方で、NTFSパーティションにあるMySqlデータベースファイルを使用したいと思います。機能しますか?何か問題がありますか?
UbuntuとWindows(デュアルブート)の両方で、NTFSパーティションにあるMySqlデータベースファイルを使用したいと思います。機能しますか?何か問題がありますか?
回答:
はい、動作しますが、いくつかの癖があります。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
(X:
Windowsでマウントした場所を置き換えます)に設定します。
コンパイルUF.orgに関するトピック1442148。
Ubuntuバージョンが動作するようになりました。私はWindowsを持っていないので、部分的にテストされていません
lower_case_table_names=1
それを使用しても問題ありません。あなたのマウントオプションなしで、私はこのバグに遭遇しました(これは実際にはバグです)。
以前にWindowsのみの環境にLinuxパーティションを追加した場合、わずかな微調整のみでデータベースを使用できます。ここに長いバージョン、短いバージョン:
mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
起動時に実行する必要があります(Windowsドライブ/media/windows
をfstab を使用してマウントすると仮定します)。
innodbのログサイズチェックを回避するには、ubuntuパーティションのinnodbログを移動する必要があります。ではmy.cnf
、追加innodb_log_group_home_dir = /var/log/mysql
のログはMySQLのエラーログに次に行くようにします。