特定のデータベースをディスク上の別の場所に保存するようにMySQLを構成できますか?
まだ新しいデータベースをデフォルトの場所に移動したいのですが、いくつかのコンピューター間で同期を維持できるように、Dropboxフォルダーに保存したい特定のデータベースがあります。
これどうやってするの?
もちろんできます!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)。
その方法について他のことを知りたいかどうか尋ねてください!
Ubuntuを使用している場合は、AppArmour構成ファイル/etc/apparmor.d/usr.sbin.mysqldにもエントリを追加する必要があることに注意してください。そうしないと、ファイルやフォルダーを変更しても、許可エラーを記録し続けます。許可。