2

Linux mysqlのD:\xampp\mysql\dataにあるデータベースを移動せずに使用したい。だから私はLinuxとWindowsの両方からそれらに取り組むことができます

これが私がしたことです:

# mount -t ntfs -o uid=mysql,gid=mysql,dmask=002,fmask=113 /dev/sda5 /media/public/
# cd /var/lib/mysql
# ln /media/public/xampp/mysql/data/my_db -s
# chown -R mysql:mysql /var/lib/mysql/my_db

しかし、mysqlはデータベーステーブルを読み取ることができません

use my_db
show tables

エラーが発生します: mysql はディレクトリ './my_db' を読み取ることができません

これは許可の問題のようです。私は何をすべきか?

PS : Windows と Linux の 2 つのオペレーティング システムを搭載したマシンは 1 台だけです。datadirWindowsやLinuxのときと同じディレクトリを使いたい。

PS : 試してみntfs-3gました。現在はマウンド パーティションであり、コンテンツの所有権はmysql:mysql. /var/lib/mysql/my_dbmysql:mysqlも同様です。しかし、私はまだ次のエラーが発生しましたshow tables

エラー 1018 (HY000): './my_db/' のディレクトリを読み取れません (エラー番号: 13)

4

3 に答える 3

2

まず、MySQL の複数のインスタンスが同時にデータ ファイルを使用することを許可しないでください。災害のレシピです。

次に、なぜ両方のマシンに MySQL のサーバーが必要なのですか? Linuxマシンのクライアントを使用して、ネットワーク経由でWindowsマシンのサーバーに接続しないのはなぜですか?

第三に、本当にこれを行う必要がある場合は、それらの間でマスターとマスターのレプリケーションを有効にすることをお勧めします。したがって、各サーバーは独自のストレージを持ち、変更を自動的にやり取りします。

編集

ああ、待って...デュアルブートですか?/var/lib/mysqlその場合、ユーザーがディレクトリ全体を読み取れるようにする必要がありmysqlます。my_dbフォルダー を chmod するだけでは十分ではありません。

ああ、マウントポイントをMySQLのデータディレクトリにどのようにリンクしましたか(コマンドのリストにはありません)...

于 2010-08-19T17:07:21.010 に答える
0
ls /media/public/xampp/mysql/data/my_db

OK、datadirmy.cnf の構成を指定して/media/public/xampp/mysql/data、MySQL がそれを探す場所を認識できるようにしましたか?

Re: 編集:

ln /media/public/xampp/mysql/data/my_db -s

ああ…ということln -s /media/public/xampp/mysql/data/my_db /var/lib/mysql/my_dbですか?

mount -t ntfs

ntfs読み取り専用のカーネル NTFS ファイルシステムのサポートを提供します。ファイルに書き込めるようにしたい場合はntfs-3g、それがインストールされていると仮定して必要になります (ほとんどの最新のディストリビューションではそうです)。

于 2010-08-19T17:18:26.463 に答える
0

次のブログ投稿に従って、新しいデータ ディレクトリを /etc/apparmor.d/usr.sbin.mysqld のディレクトリ リストに追加する必要がある場合があります。 -data-directory-beware-of.html

そのようです:

/new-mysql-datadir/ r,
/new-mysql-datadir/** rwk,

/var/log/messages を調べて、次のようなエラー メッセージがあるかどうかを確認することで、これが問題であることを確認できます。

Aug  6 14:47:23 tinybeast kernel: [20254.145552] type=1400 audit(1344228443.102:54): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=24202 comm="apparmor_parser"
Aug  6 14:47:23 tinybeast kernel: [20254.165438] type=1400 audit(1344228443.122:55): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/mysqld" name="/media/data/mysqldata/tinybeast.lower-test" pid=24206 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Aug  6 14:47:23 tinybeast kernel: [20254.165718] type=1400 audit(1344228443.122:56): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/mysqld" name="/media/data/mysqldata/tinybeast.lower-test" pid=24206 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Aug  6 14:47:23 tinybeast kernel: [20254.167606] type=1400 audit(1344228443.126:57): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/mysqld" name="/media/data/mysqldata/mysql/plugin.frm" pid=24206 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
Aug  6 14:47:23 tinybeast kernel: [20254.186759] type=1400 audit(1344228443.146:58): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/mysqld" name="/media/data/mysqldata/ibdata1" pid=24206 comm="mysqld" requested_mask="rw" denied_mask="rw" fsuid=0 ouid=0

前述のブログ投稿からこれらすべてを学んだ情報源を認めるために、投稿へのリンクが古くなった場合に備えて、ここに特定の部分を投稿しています.

于 2012-08-06T05:02:44.523 に答える