MYSQL - ALTER DATABASE 문법
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification ...
ALTER (DATABASE | SCHEMA} db_name
UPGRADE DATA DIRECTORY NAME
ater_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE[=] collation_name
ALTER DATABASE는 데이터베이스의 전체 특성을 변경할 수 있게 해줍니다. 이들 특성은 데이터베이스 디렉터리에 있는 db.opt 파일에 저장됩니다. ALTER DATABASE를 사용하기 위해, 데이터베이스에 대해 ALTER 권한이 필요합니다. ALTER SCHEMA는 ALTER DATABASE와 동의어입니다.
CHARACTER SET 걸은 기본 데이터베이스 character set을 변경합니다. COLLATE 절은 기본 데이터베이스 collation을 변경합니다.
어떤 character set 와 collation이 사용 가능한지 확인할 수 있습니다. 각각 SHOW CHARACTER SET 와 SHOW COLLATION 구문을 사용합니다.
데이터베이스 명은 첫 번째 문법에서 생략될 수 있습니다. 이 경우, 구문은 기본 데이터베이스를 적용합니다.
UPGRADE DATA DIRECTORY NAME 절을 포함하는 문법은 MySQL 5.1.23에 추가되었습니다. 데이터베이스 이름과 데이터베이스 디렉터리 이름을 매핑시키기 위해 MySQL 5.1에서 수행된 인코딩을 사용하기 위해 데이터베이스와 관련된 디렉터리의 이름을 업데이트합니다. 이 구문은 이들 조건에서 사용합니다.
- MySQL을 5.1 또는 그 후 버전으로 업그레이드 할 때 사용할 작정입니다.
- 이름이 인코딩이 필요한 특별한 문자를 포함하고 있으면 데이터베이스 디렉터리 이름을 현재 인코딩 형식에 업데이트할 작정입니다.
- 구문은 mysqlcheck에서 사용합니다. (mysql_upgrade를 조종할 때)
예를 들어, MySQL 5.0에서 데이터베이스가 a-b-c의 이름을 가지면, 그 이름은 '-' 문자의 인스턴스를 포함합니다. 5.0에서 데이터베이스 디렉터리는 a-b-c로 이름 짓습니다.
MySQL 5.1 그리고 상위 버전에서, 동일한 데이터베이스 이름은 파일 system-neutral 디렉터리 이름을 생성하기 위해 a@002db@002dc로 암호화합니다.
MySQL 설치가 옛 버전에서 MySQL 5.1 또는 그 후 버전으로 업그레이드 될 때, 서버는 #mysql50#a-b-c같은 B-b-c(옛날 형식)같은 이름을 나타냅니다. 그리고 mysql50# 접두어를 사용하는 이름을 참조해야만 합니다. 이 경우 서버가 데이터베이스 디렉터리 명을 현재 인코딩 형식으로 재구성하도록 명확하게 말하기 위해서 UPGRADE DATA DIRECTORY NAME을 사용합니다.
ALTER DATABASE `#mysq150#a-b-c` UPGRADE DATA DIRECTORY NAME;
이 구문을 실행한 후에, 특별한 #mysql50# 접두어 없이 a-b-c로써 데이터베이스를 참조할 수 있습니다.
0 댓글