MySQL 데이터베이스의 이름을 빠르게 바꾸는 방법(스키마 이름 변경)은 무엇입니까?
보통은 데이터베이스를 덤프하고 새 이름으로 다시 가져옵니다. 매우 큰 데이터베이스의 경우 이는 옵션이 아닙니다. 분명히 RENAMED {DATABASE|SCHEMA} db_name TO new_db_name;
는 뭔가 나쁜 일을 하고 있으며 몇 가지 버전에만 존재하며 전반적으로 나쁜 생각입니다.
이것은 MyISAM과 매우 다른 콘텐츠를 저장하는 InnoDB와 함께 사용해야 합니다.
다음 몇 가지 간단한 명령을 사용하세요:
으아악또는 I/O를 줄이려면 @Pablo Marin-Garcia가 제안한 다음을 사용하세요.
으아악InnoDB의 경우 다음이 작동하는 것 같습니다. 비어 있는 새 데이터베이스를 만든 다음 각 테이블의 이름을 차례로 새 데이터베이스로 바꿉니다.
으아악나중에 권한을 조정해야 합니다.
셸에서 스크립트를 작성하려면 다음 방법 중 하나를 사용할 수 있습니다.
으아악또는
으아악참고:
-p
和密码之间没有空格。如果您的数据库没有密码,请删除-u username -ppassword
섹션.테이블에 트리거가 있는 경우 위 방법을 사용하여 다른 데이터베이스로 이동할 수 없습니다(
触发器错误架构
오류가 발생함). 이 경우 기존 방법을 사용하여 데이터베이스를 복제한 다음 이전 데이터베이스를 삭제하세요.mysqldump old_db | mysql new_db
저장 프로시저가 있는 경우 복사할 수 있습니다.
mysqldump -R old_db | mysql new_db