В MySQL 4.0 safe_mysqld был переименован в mysqld_safe.
safe_mysqld - это сценарий, с помощью которого рекомендуется запускать
демон mysqld на Unix. safe_mysqld служит для реализации неких
дополнительных функций безопасности для mysqld, таких как возможность
перезапуска сервера при обнаружении ошибки и записи в журнал информации о
процессе работы mysqld.
Если не указаны опции --mysqld=# или --mysqld-version=#, safe_mysqld
будет использовать исполняемый файл mysqld-max, если последний существует.
Если mysqld-max не существует, safe_mysqld запустит mysqld. Это позволяет
легко выяснить, что даст использование mysqld-max вместо mysqld: просто
скопируйте mysqld-max поверх mysqld, и он будет работать.
Как правило, редактировать сценарий safe_mysqld не следует, однако можно
указать опции для safe_mysqld, поместив их в раздел [safe_mysqld] файла
my.cnf. safe_mysqld будет считывать все опции из разделов файлов опций
[mysqld], [server] и [safe_mysqld]. See Раздел 4.1.2, «Файлы параметров my.cnf».
Обратите внимание: все опции, которые вводятся в командной строке для
safe_mysqld, передаются mysqld. Если требуется применить в safe_mysqld
какие-либо опции, которые mysqld не поддерживает, эти опции нужно
определить в файле опций.
Большинство опций safe_mysqld - те же, что и у mysqld. See Раздел 4.1.1, «Параметры командной строки mysqld».
Safe_mysqld поддерживает следующие опции:
-
--basedir=path,--core-file-size=#Размер
core-файла который может быть созданmysqld. Значение передаетсяulimit -c -
--datadir=path,--defaults-extra-file=path,--defaults-file=path,--err-log=path (устарело в 4.0; Используйте --log-error вместо),--log-error=pathПисать журнал ошибок в указанный файл. See Раздел 4.9.1, «Журнал ошибок».
-
--ledir=pathПуть к
mysqld -
--log=path,--mysqld=mysqld-versionИмя версии
mysqld, которую вы хотите запустить в директорииledir -
--mysqld-version=versionТо же, что и
--mysqld=, но в этой опции задается только суффикс дляmysqld. Например, если используется--mysqld-version=max,safe_mysqldзапустит версиюledir/mysqld-max. Если задать--mysqld-versionбез аргумента, будет использоватьсяledir/mysqld. -
--no-defaults,--open-files-limit=#Максимальное количество файлов, которые могут быть открыты
mysqld. Значение передаетсяulimit -n. Обратите внимание: чтобы эта опция работала корректно, необходимо запуститьsafe_mysqldот пользователя root! -
--pid-file=path,--port=#,--socket=path,--timezone=#Устанавливает переменную часового пояса (
TZ) в значение, передаваемое в этом параметре. --user=#
Сценарий safe_mysqld написан таким образом, чтобы можно было запустить
сервер, инсталлированный как из исходного кода, так и из бинарной поставки
MySQL, даже если компоненты сервера, в зависимости от используемой
инсталляции, будут размещены несколько по-другому. Для safe_mysqld
требуется выполнение одного из следующих условий:
Сервер и базы данных можно обнаружить относительно каталога, в котором вызывается
safe_mysqld.safe_mysqldищет в своей рабочей директорииbinиdata(для бинарных дистрибутивов) илиlibexecиvar(для дистрибутивов с исходным кодом). Это условие должно выполняться, еслиsafe_mysqldзапускается из директории, в которую инсталлирован MySQL (например/usr/local/mysqlдля бинарного дистрибутива).Если сервер и базы данных не могут быть найдены относительно рабочей директории,
safe_mysqldпытается найти их по абсолютным путям. Типичные местоположения -/usr/local/libexecи/usr/local/var. Действительные местоположения определяются при создании дистрибутива, из которого запускаетсяsafe_mysqld. Они должны быть корректными, если MySQL был инсталлирован в стандартное местоположение.
Поскольку safe_mysqld будет пытаться найти сервер и базы данных
относительно собственной рабочей директории, можно инсталлировать двоичный
дистрибутив MySQL куда угодно, при условии, что safe_mysqld будет
запускаться из директории, в которой установлен MySQL:
shell> cd mysql_installation_directory shell> bin/safe_mysqld &
Если safe_mysqld не может запустить сервер, даже в том случае, когда он
вызывается из инсталляционной директории MySQL, сценарий safe_mysqld можно
модифицировать так, чтобы он использовал верный путь к mysqld и опции
путей, которые являются правильными для вашей системы. Обратите внимание:
если в будущем вы будете делать апгрейд MySQL, новая версия safe_mysqld
будет записана поверх старой, поэтому нужно сделать копию
отредактированной версии, которую вы сможете затем установить повторно.