Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
만약 당신이 mysql에 접근하는 root사용자 계정을 가지고 AppFuse데이터베이스 셋업을 할때 문제가 있다면, 당신은 다음의 단계중 하나를 수행할 필요가 있다. 목차
build.properties파일내 root사용자 비밀번호를 셋팅하라. [#1]mysql root사용자의 비밀번호를 셋팅하기 위해, build.properties파일을 편집하고 필요한 프라퍼티를 수정하라. #database.jar=${postgresql.jar} #database.type=postgresql #database.name=appfuse #database.host=localhost #database URL for creating other databases (doesn't work with pgsql) #database.admin.url=jdbc:${database.type}://${database.host}/template1 #database.admin.username=postgres #database.admin.password=postgres #hibernate.dialect=net.sf.hibernate.dialect.PostgreSQLDialect #database.driver_class=org.postgresql.Driver #database.url=jdbc:${database.type}://${database.host}/${database.name} 당신은 이것처럼 보이는 비밀번호를 지정하는 줄의 주석을 제거해야한다. database.admin.password=myrootpassword myrootpassword라는 값을 당신의 mysql root사용자 비밀번호로 변경한다. 당신의 root계정이 정확하게 셋업되지 않았다. [#2]당신이 mysql에 로그인 할때, 당신이 사용할수 있는 많은 데이터베이스가 있다. 그 데이터베이스중 하나는 '시스템' 데이터베이스인 mysql이라고 불린다. mysql데이터베이스에, mysql의 모든 사용자 정보를 가지는 'users'라고 불리는 테이블이 있다. users테이블은 'host'칼럼을 포함한다. root사용자는 로그인을 시도하는 각각의 'host'를 위해 users테이블내 'host'칼럼값(예를 들면, 'mypc', 'localhost', 와일드카드인 '%')을 기입할 필요가 있다. 권한과 host칼럼은 실행을 원할하게 하기 위한 ant셋업을 위해 정확하게 셋업될 필요가 있다. 이 설명들은 당신에게 비밀번호가 없는 root사용자를 셋업하는 방법을 알려준다. 당신이 ant를 성공적으로 셋업했다면, 당신은 root계정에 비밀번호를 셋팅할수 있다. 더 많은 정보를 위해, 당신은 MySQL참조문서의 root비밀번호 초기화하기 부분을 보길 원할것이다. (이 부분은 주의해 달라 : 당신은 이 방법으로 root계정을 셋업해서는 안된다. 이것은 문서상의 단계를 따르는데만 사용해야 하고 root사용자의 비밀번호를 부여하기 위해서는 [1]을 보라. 하지만 다음의 단계는 꼭 작동해야만 한다.) 이 예제에서, 우리는 hostname을 'mypc'라고 할것이다. 또한 ${MYSQL_HOME}를 mysql설치를 위한 경로로 대체하라. 이 단계의 마지막에서, 당신은 mysql데이터베이스에 로그인하고 그럼 다음과 같은 것을 보게 된다. $ mysql -u root mysql> use mysql; Database changed mysql> select user, host, password from user where user = "root"; +------+-----------+----------+ | user | host | password | +------+-----------+----------+ | root | localhost | | | root | mypc | | | root | % | | +------+-----------+----------+ 3 rows in set (0.00 sec) 만약 당신이 select * from user where user = "root" 를 수행한다면, 우리는 root사용자가 appfuse 데이터베이스를 셋업하는 것이 가능하도록 필요한 권한 옵션을 가지는 것을 표시하는 user테이블내 모든 권한 관련 칼럼에 Y가 되고 사용자 권한을 테스트하길 원한다. 먼저 우리는 mysql db를 멈추길 원하기 때문에 다음의 명령을 수행한다. mysqladmin -u root -p shutdown 만약 mysql이 아직도 구동중(유닉스라면 프로세스를 체크하거나 윈도우즈라면 작업관리자를 사용하라.)이라면, 그 프로세스를 강제로 종료하라. (UNIX) killall mysqld (Windows) Use task manager or stop the mysqld service 지금 우리는 mysql을 재시작하기를 원하지만 인증 테이블은 무시한다. 그래고 우리는 user데이터베이스 테이블을 변경하기 위해 다음의 명령을 수행한다. 유닉스에서는: ${MYSQL_HOME}/bin/mysqld_safe --skip-grant-tables & 윈도우즈를 위해서는 mysqld-nt명령어를 대신에 사용하라. ${MYSQL_HOME}\bin\mysqld-nt --skip-grant-tables 지금 mysql로 돌아가서 당신의 user테이블내 예전 root항목을 제거한다. mysql -u root use mysql; delete from user where user='root'; commit; FLUSH PRIVILEGES; 지금 우리는 GRANT명령를 사용하여 root사용자를 셋업하기를 원한다. 그래서 다음의 명령를 수행한다(당신은 hostname이나 hostname.domainname을 mypc로 변경해야만 한다.). mysql -u root use mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'mypc' WITH GRANT OPTION; FLUSH PRIVILEGES; quit; 노트 : 만약 당신이 이 단계에서 root비밀번호를 셋팅하길 원한다면(그리고 [1]에서 정의된 build.properties에 명시한다면), 당신은 GRANT명령을 변경할 필요가 있다. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION; 'myrootpassword'를 mysql root사용자 비밀번호가 되길 원하는 것으로 바꿔라. 우리는 지금 정식으로 mysql root사용자 셋업을 했다. 인증절차를 무시하지 않고 mysql을 재시작하자. 위 명령을 한번더 실행하여 mysql을 정지하자. 만약 당신이 ant셋업을 수행하면 ok상태를 보게 될것이다. 하지만 만약 당신이 아직도 에러를 보게된다면 [3]에서의 단계를 수행할 필요가 있는 것이다. 만약 당신이 실행하면, 당신은 [4]에서 언급된것처럼 root비밀번호를 셋팅하지 않아야 할것이다. test사용자 계정에 권한 부여가 적절히 셋업되지 않는다. [#3]만약 당신이 아래와 같은 에러메시지를 본다면. Invalid authorization specification message from server: "Access denied for user: 'test@mypc' (Using password: YES)" 당신은 hostname을 명시하기 위해 metadata/sql/mysql-create.sql를 변경할 필요가 있다. 다음은 당신의 hostname이 'mypc'인것처럼 보이게 변경하는 예제이다. create database if not exists appfuse; grant all privileges on appfuse.* to test@localhost identified by "test"; grant all privileges on appfuse.* to test@mypc identified by "test"; 당신의 mysql root사용자의 비밀번호를 셋팅하기 [#4]root비밀번호를 셋팅하기 위해, 다음의 명령을 수행하라. $ mysql -u root mysql> use mysql; Database changed 지금 우리는 users테이블내 root사용자 레코드의 password필드를 셋팅하기를 원한다면, 다음의 명령을 사용하라. UPDATE user SET Password=PASSWORD('myrootpassword') WHERE User='root'; FLUSH PRIVILEGES; myrootpassword에 위치하는 값이 당신의 새로운 mysql root비밀번호가 된다.
|