Проблемы при установке MySQL из Sun Web Stack
28 Декабрь 2009
Ранее я писал об установке Sun Web Stack, включающий Apache, PHP и MySQL на Solaris 10. При установке на другой сервер появилась неожиданная проблема. Оказывается, MySQL при установке из пакета в Sun Web Stack требует, чтобы пользователь mysql и группа mysql уже существовали. Причем скрипт сначала выполняет все действия по настройке, и только после их окончания проверяет, существуют ли пользователь и группа mysql, и если не существуют, то создает их.
Выглядит примерно так:
pkgadd: ERROR: unable to create package object </var/opt/webstack/mysql>. pathname does not exist group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) pkgadd: ERROR: unable to create package object </var/opt/webstack/mysql/5.1>. pathname does not exist group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) pkgadd: ERROR: unable to create package object </var/opt/webstack/mysql/5.1/data>. pathname does not exist group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) ERROR: attribute verification of </var/opt/webstack/mysql> failed group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) ERROR: attribute verification of </var/opt/webstack/mysql/5.1> failed group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) ERROR: attribute verification of </var/opt/webstack/mysql/5.1/data> failed group name <mysql> not found in group table(s) owner name <mysql> not found in passwd table(s) Creating User/Group:mysql/mysql... Installation of <sun-mysql51> partially failed.
Для глобальной зоны (или локльной зоны, если устанавливаете только в нее) решение очень простое – перезапустить скрипт установки Sun Web Stack еще раз:
bash-3.00# ./install amp
Так как скрипт во время предыдущего запуска создал пользователя и группу mysql, то во время второго запуска ошибок не будет. Создастся сервис sun-mysql51:default для управления mysql через SMF. Если сервис перевести в состояние enable, то MySQL запускается и прекрасно работает.
Проблемы продолжаются, если кроме глобальной используются не-глобальные зоны. В существующих зонах установки пакета sun-mysql51 вообще не происходит. Даже повторная установка Sun Web Stack в глобальной зоне не помогает. Чтобы установить MySQL в существующую не-глобальную зону, нужно устанавливать пакет sun-mysql51 в этой зоне напрямую. Причем до установки обязательно создать пользователя и группу mysql. Желательно, чтобы UID и GID пользователей и групп myslq в глобальной и не-глобальной зонах совпадали.
Если создать не-глобальную зону после установки Sun Web Stack, то пакет sun-mysql51 в этой зоне будет установлен и SMF сервис sun-mysql51:default будет создан. Но работать MySQL не будет, т.к. пользователь и группа mysql не будут созданы. Все необходимые каталоги для пакетов просто копируются из глобальной зоны с правами доступа на UID и GID пользователя и группы mysql глобальной зоны. Чтобы заставить работать MySQL в такой ситуации, надо в не-глобальной зоне создать пользователя и группу mysql так, чтобы UID и GID совпадали с UID и GID пользователя и группы mysql в глобальной зоне. После этого MySQL можно запустить через сервис SMF, и MySQL будет работать в не-глобальной зоне.
Следует отметить, что конфигурация SMF в глобальной и не-глобальных зонах разные. Таким образом, сервис MySQL в одной зоне может быть запущен, а в другой выключен командой svcadm.
В форуме Sun есть упоминание о том, что кроме пользователя mysql для успешной установки Sun Web Stack нужен пользователь webservd. Но он создается по-умолчанию на всех релизах Solaris 10, которые у нас используются, так что на эту ошибку я не наткнулся.
Похожие записи:
- Установка Sun Web Stack на Solaris 10
- Подключение Alfresco к MySQL в Solaris 10
- Выход из Zlogin
- Русификация Alfresco
- Solaris Internals
Рубрики: Apache, Mysql, Виртуализация


