2016-09-07 2 views
1

나는 데이터를 MySQL 데이터베이스에 저장하는 응용 프로그램을 가지고 있습니다. 응용 프로그램은 모든 권한을 가진 특정 DB 계정을 사용하고 있으며 개별 사용자 권한은 응용 프로그램 수준에서 유지 관리됩니다. root와 별도로 해당 데이터베이스에 액세스 할 수있는 다른 사용자는 없습니다. 나는 데이터베이스, 응용 프로그램 사용자, 데이터,보기없이 모든 테이블을 생성하는 SQL 스크립트, 트리거, 저장 프로 시저를 필요로하는 컴퓨터에서 응용 프로그램을 설치하기 위해MySQL 설치 설치 스크립트를 만드는 방법은 무엇입니까?

mysqldump --no-data --routines --add-drop-database --databases dbname > sqlfile 거의 모든 것을 할 것입니다 이러한 것들이 있지만 그 데이터베이스에 액세스하는 사용자의 생성을 포함하는 옵션을 찾을 수 없습니다. 어떤 힌트?

답변

1

mysqldump가 사용자 정보를 덤프하지 않는 이유는 응용 프로그램 데이터베이스가 아닌 다른 데이터베이스 이름 mysql에 저장되어 있기 때문입니다.

생성 된 SQL 덤프에이 정보를 수동으로 추가 할 수 없습니다. 두 가지 옵션이 있습니다. 셸 스크립트를 만들거나 사용자 생성 정보가 들어있는 별도의 sql 파일을 만듭니다. 어느 경우 파일은 데이터베이스에 응용 프로그램 덤프를 도입하기 전에

GRANT ALL ON appdb.* TO 'pb_skat'@'localhost'; 

http://dev.mysql.com/doc/refman/5.7/en/grant.html

+0

감사합니다. e4c5. 그것은 저의 관심사 였기 때문에 설치 스크립트에 의해 호출되는 두 개의 스크립트, 즉 데이터베이스 구조와 사용자와 함께 갈 것입니다. (그리고 소급해서 나는 데이터베이스가 아니라 애플 리케이션 레벨에서 권한을 유지하기로 결정한 것을 기쁘게 생각한다 ...) –

+0

미안하지만, 나는 아직도 프로젝트에 늦었 기 때문에 서둘러서 잊었다. 어쨌든,이 양식의 모든 버튼을 제외하고 (나는 모든 것을 밀어 넣었 으면 좋겠다.) 나는 여전히 개인적인 도움의 시간을 가진 사람에게 감사한다고 생각한다. 다시 e4c5 : 정말 고마워요! –

+0

프로젝트에 가장 적합한 모든 항목 – e4c5

0

같은 문장이 포함됩니다. 모든 당신과 함께 사용할 수있는 사용자 아래

  1. 첫 번째 목록 :

사용자, 호스트, mysql 데이터베이스에서 user 암호가;

  • 해당 사용자에게 "show grants"명령을 사용하여 작업을 수행 할 수있는 권한이 있는지 확인하고 그렇지 않은 경우 권한을 부여하십시오.
  • 부여 된 모든 권리는 입니다. '루트'@ 'localhost'WITH GRANT OPTION

    1. 덤프를 도입 할 데이터베이스 이름을 만듭니다.
    관련 문제