DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

설치-관련 프로그램

DBMS 2
MySQL 가이드
데이터 베이스 관리
설치-관련 프로그램
작성자
admin
작성일
2021-02-19 10:50
조회
914

설치-관련 프로그램

mysql_fix_privilege_tables - MySQL 시스템 테이블 업그레이드
mysql_upgrade - MySQL 업그레이드를 위한 테이블 검사
mysql_fix_privilege_tables - MySQL 시스템 테이블 업그레이드

MySQL의 몇몇 버전들은 새로운 권한을 추가하거나 또는 새로운 기능을 지원하기 위해 mysql 데이터 베이스에 있는 시스템 테이블의 구조를 변경한다. 여러분이 새로운 버전으로 업데이트를 할 경우, 시스템 테이블을 업데이트하는 것은 물론이고, 테이블 구조가 업그레이드 되었는지를 살펴 보아야 한다. 이것을 확인하기 위해서는 우선, 여러분의 mysql 데이터 베이스를 백업한 다음에, 아래와 과정을 진행한다.

Note: A MySQL 5.0.19 이후에는, mysql_fix_privilege_tables은 mysql_upgrad가 지원을 하기 때문에 이것을 대신 사용해야 한다.

유닉스 또는 이와 비슷한 시스템에서의 시스템 테이블 업데이트는 mysql_fix_privilege_tables 스크립트를 사용해서 한다:



shell> mysql_fix_privilege_tables

이 스크립트는 서버가 구동 중에 있을 때 해야 한다. 이것은 로컬 호스트 상에서 구동하고 있는 서버에 root로 접속을 시도한다. 만일 root 계정에 패스워드가 필요하면, 명령어 라인에서 아래와 같이 패스워드를 지정한다:



shell> mysql_fix_privilege_tables --password=root_password

mysql_fix_privilege_tables 스크립트는 여러분의 시스템 테이블을 현재의 포맷으로 변환하기 위한 모든 필요한 조치를 수행한다. 여러분은 이것을 실행할 때 Duplicate column name 경고와 같은 것을 보게 되는데, 이것들은 무시해도 된다.

스크립트를 구동시킨 다음에는, 서버를 종료시키고 다시 재 구동 시킨다.

윈도우 시스템에서는, MySQL 배포판에 mysql_fix_privilege_tables.sql SQL 스크립트가 포함되어 있는데, mysql 클라이언트를 사용하면 이것을 구동할 수가 있다. 예를 들면, 만약에 여러분이 MySQL을 C:\Program Files\MySQL\MySQL Server 5.0에 설치 하였다면, 명령어는 다음과 같을 것이다:



C:\> cd "C:\Program Files\MySQL\MySQL Server 5.0"
C:\> bin\mysql -u root -p mysql
mysql> SOURCE scripts/mysql_fix_privilege_tables.sql


mysql 명령어는 패스워드 프롬프트를 보이게 되며, 이때 패스워드를 입력한다.

만일 다른 위치에 설치를 하였다면, 경로 이름을 적절하게 수정한다.

유닉스 프로시저가 진행되는 동안, Duplicate column name과 같은 경고문이 나올 수도 있는데, 그럴 경우에는 무시해도 된다.

스크립트를 구동 시킨 다음에는, 서버를 종료하고 다시 구동시킨다.


mysql_upgrade - MySQL 업그레이드를 위한 테이블 검사

mysql_upgrade는 여러분이 MySQL을 업그레이드할 때마다 실행해야 한다. 이것은 모든 데이터 베이스 테이블과 업그레이드하는 MySQL 버전과의 비 호환성을 검사한다. 만약에 하나의 테이블이 호환되지 않을 가능성이 있다면, 체크를 하게 되며, 어떤 문제가 발견될 경우에는 그 테이블을 리페어한다. mysql_upgrade는 또한 시스템 테이블을 업그레이드해서 여러분이 새로운 권한 또는 기능들을 사용할 수 있게끔 해 준다.

검사와 리페어를 받은 모든 테이블은 현재의 MySQL 버전 번호로 표시가 된다. 이것을 통해 여러분이 다음에 동일한 서버 버전을 가지고 mysql_upgrade를 구동을 시킬 때, 추가적으로 검사 또는 리페어를 해야 할 테이블이 있는지를 판단한다.

mysql_upgrade는 또한 데이터 디렉토리에 있는 mysql_upgrade.info라는 파일에 MySQL버전 번호를 저장한다. 이 파일을 무시하고자 하면, --force 옵션을 사용한다.

시스템 테이블을 검사, 리페어, 그리고 업그레이드를 하기 위해서는, mysql_upgrade를 아래와 같이 실행한다:



mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_fix_privilege_tables


mysql_upgrade는 현재 유닉스에서만 지원한다. 윈도우에서는, mysqlcheck 명령어를 수동으로 실행한 후에, Section 5.6.1, “mysql_fix_privilege_tables - MySQL 시스템 테이블 업그레이드”에서 설명하는 방법으로 시스템 테이블을 업그레이드 한다.

어떤 것이 검사 되었는지 보다 자세히 보기 위해서는, CHECK TABLE 명령문의 FOR UPGRADE 옵션에 있는 내용을 보기 바란다.

mysql_upgrade를 사용하기 위해서는, 서버가 구동 되고 있는지를 확인한 다음에, 아래와 같이 호출을 한다:



shell> mysql_upgrade [options]

mysql_upgrade는 명령어 라인과 옵션 파일의 [mysqld] 및 [mysql_upgrade] 그룹에서 옵션을 읽는다. 이것이 지원하는 옵션은 다음과 같다:


  • --basedir=path
    MySQL 설치 디렉토리 경로.
  • --datadir=path
    데이터 디렉토리 경로.
  • --force
    mysql_upgrade가 이미 현재 버전에 대해서 실행이 되었다고 하더라도 강제로 mysqlcheck를 실행 시킨다. (달리 표현 하면, 이 옵션은 mysql_upgrade.info 파일을 무시하게끔 만든다.)
  • --user=user_name, -u user_name
    서버에 접속을 할 때 사용되는 MySQL 사용자 이름. 디폴트는 root.
  • --verbose
    상세 (Verbose) 모드. 프로그램이 실행하는 것에 대한 정보를 자세히 보여줌.

다른 옵션들도 mysqlcheck와 mysql_fix_privilege_tables에 전달 된다. 예를 들면, --password[=password] 옵션을 지정할 필요가 있을 것이다.

mysql_upgrade은 MySQL 5.0.19에서 추가 되었다. 이것은 이전의 mysql_fix_privilege_tables 스크립트를 대체한다.

출처 : MySQL 코리아