솔라리스(Solaris)에서 번들제공된 mysql이 아닌 http://www.sunfreeware.com이나 직접 컴파일해서 설치하는 경우 SMF 작동시키기 위한 방법을 설명합니다.
이번경우는 Manifest 만 작성하여 세팅하는 방식으로 설명하며 원하실경우 예제를 조금 바꾸어 Methods로 나누어서 설정하셔도 무방합니다. 두가지가 크게 차이는 없고 하나로 만들기에 좀 버거운경우나 관리적차원(?) 보통 두개로 설정한다고 보는게 편할것 같긴합니다.
우선 세팅은 일반적인 mysql 설정 방법을 따릅니다.
크게다를건 없고 혹시 Manifest내용상의 경로와 서로틀리다면 Manifest상의 경로를 변경하시면 문제없을 겁니다.
우선
/var/svc/manifest/application/mysql.xml이라는 화일을 생성합니다.
(manifest 디렉토리상에 application 이나 network, site 디렉토리정도가 적당할것 같군요)
(위치와 이름은 크게 상관없습니다. 나중에 등록하실때 알맞게 바꿔주시면되니까요)
[sol:/]#vi /var/svc/manifest/application/mysql.xml
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <!-- Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. pragma ident "@(#)server.xml 1.2 04/08/09 SMI" --> <service_bundle type='manifest' name='MySQL'> <service name='application/mysql' type='service' version='1'> <dependency name='filesystem' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local'/> </dependency> <dependency name='database_configuration' type='path' grouping='require_all' restart_on='refresh'> <service_fmri value='file://localhost/usr/local/mysql/my.cnf' /> </dependency> <dependent name='mysql-runlevel' grouping='require_all' restart_on='none'> <service_fmri value='svc:/milestone/multi-user-server' /> </dependent> <exec_method type='method' name='start' exec='/usr/local/mysql/share/mysql/mysql.server %m' timeout_seconds='10' /> <exec_method type='method' name='stop' exec='/usr/local/mysql/share/mysql/mysql.server %m' timeout_seconds='5' /> <exec_method type='method' name='restart' exec='/usr/local/mysql/share/mysql/mysql.server %m' timeout_seconds='5' /> <property_group name='general' type='framework'> <!-- to start stop database --> <propval name='action_authorization' type='astring' value='mysql.operator' /> <propval name='value_authorization' type='astring' value='mysql.administrator' /> </property_group> <instance name='default' enabled='true' /> <stability value='Unstable' /> <template> <common_name> <loctext xml:lang='C'> MySQL Database Server </loctext> </common_name> <documentation> <manpage title='mysql' section='1' manpath='/usr/local/mysql/man' /> <manpage title='mysqld' section='1' manpath='/usr/local/mysql/man' /> <manpage title='mysqladmin' section='1' manpath='/usr/local/mysql/man' /> </documentation> </template> </service> </service_bundle>위와 같이 작성해주신후
Permission 수정 해주셔야겠죠?
[sol10:/]#chown root:sys /var/svc/manifest/applicaiton/mysql.xml
[sol10:/]#chmod 444 /var/svc/manifest/applicaiton/mysql.xml
Manifest 화일이 이상없나 체크를 해봅시다
[sol10:/]#xmllint /var/svc/manifest/applicaiton/mysql.xml
또 다른방법?
[sol10:/]#svccfg
svc:>
svc:> validate /var/svc/manifest/applicaiton/mysql.xml
간단하게 체크해보니 이상없다는군요 @,@;
Manifest 를 import 합시다
[sol10:/]# svccfg -v import /var/svc/manifest/applicaiton/mysql.xml
사용가능하게 enable 시켜줍니다.
[sol10:/]#svcadm -v enable application/mysql
만일 에러가 발생한다면 에러메세지 내용을 잘읽어보세요 일반적으로는 경로문제 일가능성이 좀 큽니다.
간단하게 잘 실행되었나 확인은?
[sol10:/]#svcs -x mysql
svc:/application/mysql:default (MySQL Database Server)
상태: online(2008년 9월 23일 화요일 오후 10시 02분 25초 이후)
참조: mysql(1)
참조: mysqld(1)
참조: mysqladmin(1)
참조: /var/svc/log/application-mysql:default.log
영향: 없음
사용된 mySQL Manifest file mysql.xml
P.S
예제 내용중 구성이 바뀔경우
manifest이하 디렉토리와 화일이름을 바꿀경우
13번째 라인
name='application/mysql' 을 name='network/mysqlxml' 표시이름이 network주제에 mysqlxml이라는 이름으로 표시된다.
my.cnf 화일의 위치가 다르다
/usr/local/mysql/my.cnf 로 설정이 되어있는데 /etc/my.cnf라면
40라인 이하절에 보면
exec=exec='/usr/local/mysql/share/mysql/mysql.server %m' 이부분이 실행하는 화일입니다. methods화일과 서로 분리가 필요하신분은 이부분을 수정하시면됩니다.
도움이 필요한분은 일전에 포스팅한 아파치 부분 보시면될겁니다.
76라인 이하절은 없어도 무관합니다 ㅡ,ㅡ;
'Solaris' 카테고리의 다른 글
Solaris 10 SMF(Service Management Facility) 관리에 도움을 주는 Script (0) | 2008.10.08 |
---|---|
Solaris CVS 설치 및 설정 SMF (1) | 2008.09.26 |
Solaris 10에서 아파치2 SMF 세팅하기 (2) | 2008.06.10 |
Solaris에 기본설치되어있는 mysql setup 하기 (1) | 2008.05.08 |
Solaris update 시 수동 업데이트가 필요한 경우 (0) | 2008.05.05 |