Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences

Edit this page


Referenced by
AppFuseQuickStart_ko
AppFuseSupport_ko




JSPWiki v2.2.33

[RSS]


Hide Menu

AssistanceWithAntSetup_ko


만약 당신이 mysql에 접근하는 root사용자 계정을 가지고 AppFuse데이터베이스 셋업을 할때 문제가 있다면, 당신은 다음의 단계중 하나를 수행할 필요가 있다.

목차

  • [1] build.properties파일에 mysql root사용자 비밀번호를 셋팅하라.
  • [2] 당신의 root계정은 정확하게 셋팅되지 않았다.
  • [3] test사용자 계정을 위한 권한설정이 아마도 셋팅되지 않았다.
  • [4] 당신의 mysql root사용자를 위한 비밀번호를 셋팅하라.

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비밀번호가 된다.



Go to top   Edit this page   More info...   Attach file...
This page last changed on 06-Nov-2006 13:53:00 MST by DongGukLee.