programing

MySQL 데이터베이스 이름 변경

yoursource 2022. 10. 3. 22:53
반응형

MySQL 데이터베이스 이름 변경

다음 이름으로 데이터베이스를 만들었습니다.hrms. 이제 데이터베이스 이름을 로 변경해야 합니다.sunhrm그러나 MySQL 워크벤치에서는 비활성화되어 있습니다.Linux 서버 자체에서 이 작업을 수행할 수 있습니까?

명령줄에서 이 작업을 수행해야 하는 경우 이 스니펫을 복사하여 적용 및 붙여넣기만 하면 됩니다.

mysql -e "CREATE DATABASE \`new_database\`;"
for table in `mysql -B -N -e "SHOW TABLES;" old_database`
do 
  mysql -e "RENAME TABLE \`old_database\`.\`$table\` to \`new_database\`.\`$table\`"
done
mysql -e "DROP DATABASE \`old_database\`;"

넌 할 수 없을 것 같아.기본적인 답변은 많은 경우에 유효하며, 다른 경우에는 데이터가 파손되는 원인이 됩니다.데이터베이스의 경험적 분석에 따라 전략을 선택해야 합니다.이것이 이 기능이 실장되어 삭제된 이유입니다.[doc]

해당 데이터베이스의 모든 개체 유형을 덤프하고 새로 명명된 개체를 만든 다음 덤프를 가져와야 합니다.이게 실제 시스템이라면 해체해야 합니다.그렇지 않으면 이 데이터베이스에서 새 데이터베이스로의 복제를 설정해야 합니다.

이를 실행할 수 있는 명령어를 보려면 @satishD에 자세한 내용이 기재되어 있습니다.이것에 의해, 타겟 데이타베이스와 일치하는 전략을 구축하기 위해서 필요한 몇개의 과제가 표시됩니다.

덤프를 파일에 저장하지 않고 mysqldump 명령을 통해 데이터베이스를 복사할 수 있습니다.

  1. mysql -u root -p -e "create database my_new_database"
  2. mysqldump -u root -p original_database | mysql -u root -p my_new_database
  3. mysql -u root -p -e "drop database original_database"

이전 데이터베이스가 존재했던 그대로 새 데이터베이스를 작성한 후 작업이 완료되면 이전 데이터베이스를 삭제할 수 있습니다.mysqldump 도구를 사용하여 데이터베이스 .sql 백업을 만듭니다.mysqldump orig_db > orig_db.sql또는 사용자 이름과 비밀번호를 사용해야 하는 경우mysqldump -u root -p orig_db > orig_db.sql. orig_db는 "삭제"할 데이터베이스 이름입니다.root은 로그인 중인 사용자, orig_db.sql은 백업을 포함하는 작성된 파일입니다.이제 데이터베이스에 대해 원하는 이름으로 비어 있는 새 데이터베이스를 작성합니다.예를들면,mysql -u root -p -e "create database new_db"그게 끝나면, 도망쳐요mysql -u root -p new_db < orig_db.sql. new_db는 orig_db의 완벽한 복사본으로 존재합니다.그런 다음 기존 데이터베이스가 원하는 데이터베이스 이름으로 새 데이터베이스에 있으므로 삭제할 수 있습니다.

위의 모든 설명이 없는 간단한 절차는 다음과 같습니다.

  1. mysqldump -u root -p original_database > original_database.sql
  2. mysql -u root -p -e "create database my_new_database"
  3. mysql -u root -p my_new_database < original_database.sql
  4. mysql -u root -p -e drop database originl_database

이것이 도움이 되기를 바라며, 이것이 데이터를 손상시키고 불일치를 발생시키는 애드혹 방식을 사용하지 않고 이를 달성할 수 있는 신뢰할 수 있는 수단입니다.

새 스키마 "other_db"를 만든 후 "current_db"의 각 테이블에 대해 RENAME 문을 사용하여 이름을 변경할 수 있습니다.

RENAME TABLE current_db.tbl_name TO other_db.tbl_name

소스 이름 변경 테이블 구문

간단히 말하면 아니다.일반적으로 데이터베이스의 이름을 변경하는 것은 너무 위험하다고 생각됩니다.MySQL에는 잠시 그 기능이 있었지만 삭제되었습니다.워크벤치를 사용하여 스키마와 데이터를 모두 SQL로 내보낸 후 실행/가져오기 전에 CREATE DATABASE 이름을 변경하는 것이 좋습니다.

데이터베이스 이름을 바꾸기 위해 다음 방법을 사용했습니다.

  1. mysqldump 또는 임의의 DB 도구(heidiSQL, mysql 관리자 등)를 사용하여 파일을 백업합니다.

  2. 일부 텍스트 편집기에서 백업 파일(예: backupfile.sql)을 엽니다.

  3. 데이터베이스 이름과 저장 파일을 검색하여 바꿉니다.

  4. 편집한 SQL 파일 복원

DB에 MyISAM 테이블만 있는 경우(InnoDB 테이블이 있는 경우 이 방법을 사용하지 마십시오).

  1. MySQL 서버 종료
  2. data디렉토리와 데이터베이스 디렉토리의 이름을 변경합니다(주의: 영자가 아닌 문자는 특수한 방법으로 인코딩해야 합니다).
  3. 서버를 재기동하다
  4. 필요에 따라 권한 조정(새 DB 이름에 대한 액세스 허용)

이 모든 것을 1개의 명령어로 스크립팅 할 수 있기 때문에 다운타임이 1~2초밖에 되지 않습니다.

성급한 mysql 사용자(나처럼)에게 솔루션은 다음과 같습니다.

/etc/init.d/mysql stop
mv /var/lib/mysql/old_database /var/lib/mysql/new_database 
/etc/init.d/mysql start

먼저 HRMS라는 오래된 데이터베이스를 백업하고 스크립트파일을 편집하여 HRMS를 SUNHRM으로 바꿉니다.이 단계가 끝나면 데이터베이스 파일을 mysql로 Import합니다.

데이터베이스의 이름을 변경하거나 데이터베이스의 이미지를 촬영하는 또 다른 방법은 데이터베이스 탭의 리버스 엔지니어링 옵션을 사용하는 것입니다.데이터베이스의 ERR 다이어그램을 작성합니다.여기서 스키마의 이름을 변경합니다.

그런 다음 파일 메뉴로 이동하여 데이터베이스 내보내기 및 전달 엔지니어로 이동합니다.

그런 다음 데이터베이스를 가져올 수 있습니다.

언급URL : https://stackoverflow.com/questions/12190000/rename-mysql-database

반응형