Вы здесь

Настройка Mysql

После установки Mysql выполняю команду emerge --config dev-db/mysql, которая выдает кучу ошибок. После установки mysql в my.cnf изменяю только datadir= на свой каталог, если возвращаю значение по умолчанию datadir=/var/lib/mysql, то все работает. Изначально мой каталог не существует, как и /var/lib/mysql которого тоже нет.

А зачем менять каталог БД?

—

Не грусти, товарищ! Всё хорошо, beautiful good!

Цитата:
выполняю команду emerge --config dev-db/mysql, которая выдает кучу ошибок.

Каких ошибок, где лог?

Цитата:
После установки mysql в my.cnf изменяю только datadir= на свой каталог, если возвращаю значение по умолчанию datadir=/var/lib/mysql, то все работает.

Владельцем директории должен быть "mysql:mysql" с правами 0750.

Цитата:
Изначально мой каталог не существует, как и /var/lib/mysql которого тоже нет.

Он создастся при выполнении 'emerge --config'

1. Меняете директорию в /etc/mysql/my.cnf

datadir = /home/mysql (например на такую)

2. Выполняем
emerge --config =dev-db/mysql-5.1.70 (версия должна соответствовать)

3. Запускаем mysql

4. Если директория уже создана, можно ее копировать, с правами, указанными выше, выполнить

emerge --config =dev-db/mysql-5.1.70 (версия должна соответствовать)

5. Запускаем.

Соответственно, до выполнения этих операций mysql нужно остановить.

—

буду честен, я не знаю, почему у меня все работает

Вполне достаточно emerge --config mysql, без конкретики. Две версии мускула не встанут на одну систему, так что каши не будет. Факт существования виртуала mysql вообще никак не сказывается.

—

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Вот лог, который выдает emerge:

* Command: '/usr/share/mysql/scripts/mysql_install_db' '--basedir=/usr' --log-warnings=0 --loose-skip-grant-tables --loose-skip-host-cache --loose-skip-name-resolve --loose-skip-networking --loose-skip-slave-start --loose-skip-ssl --loose-skip-log-bin --loose-skip-relay-log --loose-skip-slow-query-log --loose-skip-external-locking --loose-skip-log-slave-updates --user=mysql
* ERROR: dev-db/mysql-5.5.32::gentoo failed (config phase):
* MySQL databases not installed
*
* Call stack:
* ebuild.sh, line 93: Called pkg_config
* environment, line 3596: Called mysql-v2_pkg_config
* environment, line 3212: Called die
* The specific snippet of code:
* [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] || die "MySQL databases not installed";
*
* If you need support, post the output of `emerge --info '=dev-db/mysql-5.5.32::gentoo'`,
* the complete build log and the output of `emerge -pqv '=dev-db/mysql-5.5.32::gentoo'`.
* The complete build log is located at '/var/tmp/portage/dev-db/mysql-5.5.32/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-db/mysql-5.5.32/temp/environment'.
* Working directory: '/usr/lib64/portage/pym'
* S: '/var/tmp/portage/dev-db/mysql-5.5.32/work/mysql-5.5.32'

В /etc/mysql/my.cnf ставлю, например, datadir=/root/mysql (пробовал разные). Выполняю команды emerge --config =dev-db/mysql-5.5.32 или emerge --config dev-db/mysql. Все равно ошибки. Работает когда ставлю datadir=/var/lib/mysql. Может потому что версия 5.5? Конечно можно скопировать папку из /var/lib/mysql в нужное место, что я и сделал, но это как-то несолидно.

Выше же писали про права доступа к каталогу. А они должны быть у всех элементов цепочки пути, советую заметить.

—

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

На каталог ставлю полные права для пользователя mysql, но результат такой же.

Зачем вы вообще меняете каталог?

—

Не грусти, товарищ! Всё хорошо, beautiful good!

База mysql на отдельном диске, поэтому меняю. Конечно как вариант, туда весь /var можно было бы отправить.

nikky написал:
База mysql на отдельном диске, поэтому меняю. Конечно как вариант, туда весь /var можно было бы отправить.

А смонтировать диск в стандартный каталог не?…
Правда, тут ещё необходимо знание некоторых фундаментальных принципов…

—

:wq
--
Live free or die

Да, тоже как вариант.

Бль, какие все внимательные, мрак. ДЛя тех, кто на бронепоезде - пример

/root/mysql - На каталог /root ему надо rx, на /root/mysql ему надо rwx

—

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Ничего не понял. Каталог /home тоже доступен только root-у на запись, это не значит, что каталоги внутри не доступны для пользователей для записи.

Чтобы пользователь mysql смог увидеть определенный каталог, нужно чтобы на все вышестоящие каталоги у него был rx, учитывая, что он не владелец вышестоящих каталогов, то на них права надо ставить rx для other.

—

Jah will give us everything

mount -o bind или ln -s не вариант?

—

Jah will give us everything

Было важнее понять почему не работает конфиг... Мне почему-то было удобнее скопировать чистую базу, а там уже развернуть дамп.