web-dev-qa-db-ja.com

MySQLデータベースの異なる場所?

特定のデータベースをディスク上の別の場所に保存するようにMySQLを構成できますか?

まだ新しいデータベースをデフォルトの場所に移動したいのですが、いくつかのコンピューター間で同期を維持できるように、Dropboxフォルダーに保存したい特定のデータベースがあります。

これどうやってするの?

17
Colin

もちろんできます!root permissonを付与する必要があります。lnのマニュアルページを読んでください。

MySQLは、/var/lib/mysql内の別々のディレクトリにデータベースデータを保存します。最初に、選択したデータベースのファイルを配置するディレクトリを作成する必要があったと思います。ルート許可を付与し、MySQLデーモンを停止します。

# /etc/init.d/mysql stop

データを新しいフォルダーにコピーします。

# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir

MySQLデータファイルから古いディレクトリを削除します:(Warning!常にSQLダンプを最初に作成する!!!

# rm -R /var/lib/mysql/DATABASENAME

MySQLデータディレクトリへのシンボリックリンクを作成します:(ご注意ください!まずlnのマニュアルページを読んでください!!!

# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME

その後、準備ができて、MySQLを起動します。

# /etc/init.d/mysql start

警告!新しいディレクトリがMySQLで書き込みおよび読み取り可能でない場合、動作しません!たとえば、一般的な問題:新しいデータディレクトリをホームフォルダーに配置し、ホームフォルダーが他のユーザーによって読み取り保護されている(例:drwxrwx --- your yourdir)。

その方法について他のことを知りたいかどうか尋ねてください!

27
antivirtel

Ubuntuを使用している場合は、AppArmour構成ファイル/etc/apparmor.d/usr.sbin.mysqldにもエントリを追加する必要があることに注意してください。そうしないと、ファイルやフォルダーを変更しても、許可エラーを記録し続けます。許可。

3
Andrea Moro