Linux: MySQL: как использовать базы данных mysql на смонтированной NTFS в качестве базы данных mysql в linux? - PullRequest
2 голосов
/ 19 августа 2010

Я хочу использовать базы данных в D: \ xampp \ mysql \ data в моем Linux MySQL без перемещения.так что я могу работать с ними из 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.и я хочу использовать тот же каталог, что и datadir, когда я нахожусь в Windows или Linux.

PS : я попробовал ntfs-3g.теперь насыпать раздел и владеть всем содержимым mysql:mysql./ var / lib / mysql / my_db тоже mysql:mysql.но я все еще получаю следующую ошибку на show tables

ОШИБКА 1018 (HY000): Не могу прочитать каталог './my_db/' (errorno: 13)

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

Прежде всего, никогда не позволяйте более чем одному экземпляру MySQL использовать файлы данных одновременно. Это рецепт катастрофы.

Во-вторых, зачем вам сервер MySQL на обеих машинах? Почему бы просто не использовать клиент на машине с Linux для подключения через сеть к серверу на машине с Windows?

В-третьих, если вы действительно должны сделать это, я бы предложил включить репликацию мастер-мастер между ними. Таким образом, каждый сервер будет иметь свое собственное хранилище и будет автоматически сообщать об изменениях туда и обратно.

Редактировать

Аааа, подожди ... Ты двойная загрузка? Если это так, вам нужно убедиться, что весь каталог /var/lib/mysql доступен для чтения пользователю mysql. Вам недостаточно просто изменить папку my_db.

О, а как вы связали точку монтирования с каталогом данных для MySQL (этого нет в вашем списке команд) ...

0 голосов
/ 06 августа 2012

Возможно, вам потребуется добавить новый каталог данных в список каталогов в /etc/apparmor.d/usr.sbin.mysqld согласно этому сообщению в блоге: http://www.lucasward.net/2011/05/moving-mysql-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

Чтобы подтвердить мои источники, я узналВсе это из вышеупомянутого поста в блоге, я просто публикую здесь отдельные части на случай, если ссылка на пост когда-либо устареет.

0 голосов
/ 19 августа 2010
ls /media/public/xampp/mysql/data/my_db

ОК, вы указали конфигурацию datadir в my.cnf на /media/public/xampp/mysql/data, чтобы MySQL знал, где ее искать?

Re: edit:

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, при условии, что он установлен (большинство современных дистрибутивов делают).

...