Я очень плохо разбираюсь в сценариях оболочки Unix. Есть ли способ создать сценарий оболочки Unix, который запускается только во время загрузки сервера, и выполнит следующие команды по порядку:
# cd /mysql
# ./bin/safe_mysqld --user=root &
# ./support-files/mysql.server start
Более длинная история ... На сервере HP-UX я установил Mysql. Однако клиент хотел, чтобы сервер был установлен в /mysql
вместо этого в /usr/local/mysql/
стандартное расположение. В течение последней недели я изо всех сил пытался настроить демон mysql на автоматический запуск во время загрузки сервера.
Я не знаю, в чем проблема, но пока единственный способ запустить сервер - это использовать указанные выше команды.
ОБНОВЛЕНИЕ: 07.02.12 15:23
Это краткий результат загрузки сервера при запуске процессов:
Start MySQL Server .................................................. OK
...
Однако после того, как я войду ps -ef
Я легко могу сказать, что он не запускается:
# ps -ef | grep -i mysql
root 3074 3056 0 15:26:53 pts/0 0:00 grep -i mysql
#
И вот как это должно выглядеть, когда я начинаю процесс:
# cd mysql
# ./bin/safe_mysqld --user=root &
[1] 3123
# Starting mysqld daemon with databases from /mysql/data
#
# ./support-files/mysql.server start
Starting MySQL
SUCCESS!
#
# ps -ef | grep -i mysql
root 3139 3123 0 15:27:19 pts/0 0:00 /mysql/bin/mysqld --basedir=/mysql --datadir=/mysql/data --u
root 3123 3056 0 15:27:19 pts/0 0:00 /bin/sh ./bin/safe_mysqld --user=root
root 3171 3056 0 15:27:59 pts/0 0:00 grep -i mysql
#
Теперь я думаю, что стало более понятно, почему я хочу создать сценарий запуска оболочки и фактически ПРИНУДИТЕЛЬНО запуск процесса с этими командами.
Двоичный файл должен знать расположение файла my.cnf при запуске (по умолчанию будет скомпилировано). Вы не сказали, какой префикс пути вы использовали при сборке mysql. В свою очередь, файл my.cnf определяет расположение файлов данных.
Было бы неплохо использовать подходящий сценарий инициализации SysV для управления сервером. Помимо решения проблемы запуска сервера при загрузке, вы также получите полное завершение работы при остановке системы, вы можете настроить разумное поведение для разных уровней запуска и останавливать / запускать только сервер mysql управляемым способом. И если вы настроите его правильно, он будет хорошо работать с SAM.
Есть пример здесь (обратите внимание, что местоположение my.cnf передается в качестве аргумента safe_mysqld). Он должен находиться в /sbin/init.d с соответствующими (символическими) ссылками в /sbin/rcX.d (где X - соответствующий уровень выполнения). Процесс описан здесь.
Я думаю, что самое чистое, если это вам подходит, - это перекомпилировать MySQL.
В исходном каталоге (извлечение из архива):
./configure --prefix=/mysql
make && sudo make install