ibdata1 파일은 MySQL의 innodb 로그 파일로 줄일 수 없다.
단, 다음 과정을 통해 삭제 후 재생성할 수 있다.
1. 전체 데이터베이스 백업
2. 전체 데이터베이스 삭제
3. ibdata 파일 및 ib_log 파일 삭제
4. 전체 데이터베이스 복원
1. 전체 데이터베이스 백업
mysqldump --opt -A -u사용자 -p암호 > all-databases.sql
2. 전체 데이터베이스 삭제 : 단, mysql, information_schema 는 제외
mysql -uroot -ppassword -e "show databases"| grep -v 'Database\|information_schema\|mysql' | gawk '{print "drop database " $1 ";select sleep(0.1);"}' | mysql -uroot -ppassword
3. ibdata 파일 및 ib_log 파일 삭제
sudo stop mysql
sudo rm -f /var/lib/mysql/ib*
4. 전체 데이터베이스 복원
sudo start mysql
mysql -uroot -ppassword < all-databases.sql
그 외로 innodb 테이블별로 저장하게 설정할 수 있다.
sudo vi /etc/mysql/my.cnf
[mysqld]
innodb_file_per_table
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
참고페이지 :
- http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql
- http://rootedlabs.wordpress.com/2009/10/03/drop-all-databases-in-mysql/
'개발 > Database' 카테고리의 다른 글
원격서버의 MYSQL데이테베이스 백업하기 (0) | 2015.07.22 |
---|---|
MySQL 데이터 디렉토리(datadir) 옮기기 (0) | 2015.07.22 |
mysql.exe 명령행 클라이언트 툴 을 사용하자. (0) | 2015.07.22 |