Previous Entry Share Next Entry
нид хелп
seashore
northern_wind
Уже примерно сутки об это убиваюсь, прочитал все форумы какие мог.
Пытаюсь переместить директорию, в которой mysql хранит свои файлы (Debian squeeze, mysql 5.1) на другой раздел диска.
В /home/mysql оно перемещается нормально и работает.
При перемещении в /media/misc/mysql роняет мне весь mysql.

Права выдаю, datadir в конфиге прописываю, chown прописываю. Apparmor не стоит.
Что я делаю не так?

*вдумчиво строчит пост на stack overflow*

  • 1
Ты мыскль-то при этом кладешь?
И что будет, если новое место сделать линком на старое,а конфиги не трогать?

В каком смысле кладу?

То же самое. С /home/mysql работает, с соседним разделом - неа.

selinux какой-нибудь. Опции монтирования. файловая система.
Но это уже угадайка

selinux не стоит, а вот насчет опций монтирования очень вероятно
*задумался*

а с файловой системой что может быть не так?
везде ext3

ой, то есть, я делал старое место линком на новое.
обратный вариант же будет довольно бессмысленен?

Если в конфигах старый путь (а новое место линком на старое) - то проблемы с файловой системой. Иначе - могут быть где угодно

Он что-то говорит когда роняется?

из лога:
121108 16:13:03 mysqld_safe Starting mysqld daemon with databases from /media/misc/mysql
121108 16:13:03 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'plugin' is read only
121108 16:13:03 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: Log scan progressed past the checkpoint lsn 0 37356
121108 16:13:03 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 44233
121108 16:13:03 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
121108 16:13:04 InnoDB: Started; log sequence number 0 44233
121108 16:13:04 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'host' is read only
121108 16:13:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended


при вызове mysql_upgrade:

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock'
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect

Больше всего похоже на права доступа на запись в директорию.

Не может ли любезный джин давать права на файлы, но забыть chmod/chown на саму директорию /media/misc/mysql ?
ls -la /media/misc/mysql в студию и сравнить с /home/mysql


сравнила, все совпало. :)
ВНЕЗАПНО обнаружила, что симлинк директории с не помещающейся базой (не всю /var/lib/mysql, а только /var/lib/mysql/foo сделать ссылкой) почему-то тоже работает
вообще непостижимо.
может, это были какие-то ошибки в файловой системе, на которой проверка mysql падала, конечно x.X хотя я проверил и все чисто.

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

работает симлинк не всего /var/lib/mysql, а только директории с базой, которая в /var не помещается (/var/lib/mysql/foo)
не могу объяснить этот факт

Что-то вы странное делаете. Нет бы просто взять и примонтировать раздел требуемого размера в /var/lib/mysql

о!
*офигел от красоты решения*
и правда. попробую так.

Только надо не забыть на корневой каталог примонтированного раздела поставить те же права и владельца, которые были раньше на том месте, куда монтируется.

  • 1
?

Log in

No account? Create an account