Задавайте вопросы, мы ответим
Вы не зашли.
Есть сервер на линуксе lfs версии 7.0 самосбор, но всё работает нормально.
Установлена СУБД mysql - mysqld Ver 5.5.17-log for Linux on i686 (Source distribution)
запускается отлично, в базы захожу то же, поменял корневого пользователя для mysql, остальных удалил - для безопасности.
Других баз кроме базы mysql (- это performance_schema, mysql и test) нет.
Теперь пытаюсь запустить mysql в chroot.
Создал каталоги /chroot/mysql
Создал системные папки, скопировал все файлы что надо. Скопировал базы.
Вот так запускаю:
chroot /chroot/mysql /usr/sbin/mysqld -r --basedir=/usr --datadir=/data/baza/mysql --plugin-dir=/usr/lib/plugin --user=mysql --log-error=/var/log/mysql/mysqld_error.log --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock
и вот что получаю:
140502 17:28:38 [ERROR] chroot: No such file or directory
140502 17:28:38 [ERROR] Aborting
Вроде как chroot не может найти дирректорию, но сам chroot Работает, если его например запустить для bash то всё работает нормально.
Это наверное mysqld не может что то найти, но что!!!!!
Все что надо файлы и библиотеки скопировал, вот весь перечень:
/chroot/mysql/bin/false
/chroot/mysql/dev/null
/chroot/mysql/dev/=log
/chroot/mysql/etc/group
/chroot/mysql/etc/hosts
/chroot/mysql/etc/ld.so.cache
/chroot/mysql/etc/ld.so.conf
/chroot/mysql/etc/localtime
/chroot/mysql/etc/my.cnf
/chroot/mysql/etc/nsswitch.conf
/chroot/mysql/etc/passwd
/chroot/mysql/etc/resolv.conf
/chroot/mysql/etc/shadow
/chroot/mysql/lib/ld-2.14.1.so
/chroot/mysql/lib/libc-2.14.1.so
/chroot/mysql/lib/libcrypt.so.1
/chroot/mysql/lib/libdl-2.14.1.so
/chroot/mysql/lib/libm-2.14.1.so
/chroot/mysql/lib/libpthread-2.14.1.so
/chroot/mysql/lib/librt-2.14.1.so
/chroot/mysql/lib/libz.so.1
/chroot/mysql/lib/ld-linux.so.2
/chroot/mysql/lib/libcrypt-2.14.1.so
/chroot/mysql/lib/libc.so.6
/chroot/mysql/lib/libdl.so.2
/chroot/mysql/lib/libm.so.6
/chroot/mysql/lib/libpthread.so.0
/chroot/mysql/lib/librt.so.1
/chroot/mysql/lib/libz.so.1.2.5
/chroot/mysql/usr/lib/plugin/все файлы из основной системы
/chroot/mysql/usr/lib/libgcc_s.so
/chroot/mysql/usr/lib/libgcc_s.so.1
/chroot/mysql/usr/lib/libstdc++.so
/chroot/mysql/usr/lib/libstdc++.so.6
/chroot/mysql/usr/lib/libstdc++.so.6.0.16
/chroot/mysql/usr/sbin/mysqld
/chroot/mysql/usr/share/mysql/все файлы из основной системы
/chroot/mysql/usr/share/mysql-bench/sql-bench/все файлы из основной системы
/chroot/mysql/usr/share/mysql-test/все файлы из основной системы
/chroot/mysql/var/log/mysql/mysqld_error.log
/chroot/mysql/var/run/mysql/
/chroot/mysql/var/tmp/ с правами 1777
/chroot/mysql/tmp/ с правами 1777
Тогда пытаюсь сделать по другому. Удаляю все базы и пытаюсь создать базы заново:
cd /chroot/mysql/usr
mysql_install_db --user=mysql --language=russian --datadir=/chroot/mysql/data/baza --basedir=/chroot/mysql/usr
и вот что получаю:
FATAL ERROR: Could not find my_print_defaults
The following directories were searched:
/chroot/mysql/usr/bin
/chroot/mysql/usr/extra
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
Эти папки есть, но mysqld в папке sbin.
копирование его в папку bin проблему не решило, пишет те же ошибки.
Если у кого есть опыт запуска mysql в chroot помогите пожалуйста!!!!
Неактивен
А какая ошибка если сделать
chroot /chroot/mysql
а там
/usr/sbin/mysqld ...
Неактивен
chroot /chroot/mysql
выдаёт вот что:
chroot: failed to run command `/bin/bash': No such file or directory
да там мне bash не нужен, я наоборот chroot делаю что бы к bash не было доступа
/usr/sbin/mysqld -r --basedir=/usr --datadir=/data/baza/mysql --plugin-dir=/usr/lib/plugin --user=mysql --log-error=/var/log/mysql/mysqld_error.log --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock
выдаёт вот что:
140502 20:01:25 [ERROR] chroot: No such file or directory
140502 20:01:25 [ERROR] Aborting
это потому что параметр -r собственно запуск mysql в chroot , если его убрать то mysql запускается нормально но не в chroot
Неактивен
Это ошибка mysqld, что он не может найти команду chroot. Значит она не в пути по умолчанию.
Неактивен
> Это ошибка mysqld, что он не может найти команду chroot. Значит она не в пути по умолчанию.
Объясните пожалуйста поподробней.
Неактивен
бинарник chroot находится в /usr/sbin
Неактивен
Может быть стоит попробовать временно установить bash для тестирования.
А где задаете директорию в которую делать chroot в командной строке mysqld?
Неактивен
Почему в chroot mysql не запускается я выяснил, просто опцию -r не надо писать.
Я так понял что она как раз для chroot нужна........... Но без неё всй работает, а с ней нет. Пишет что не может найти дирректорию --basedir=/usr
Неактивен