今天發現一台Server 空間不足, 這台主機主要運行著mysql
查看了一下檔案最大的size 是 ibdata1 , 果然不出所料
show variables like '%per_table%'; 值為 off
意思是說 mysql 中所有的table index 都會存在ibdata1 這個檔案中,
即使你刪除了table 這個ibdata1 也不會縮小
解決方法:
1.exp 資料庫
2.drop database
3.設定 innodb_file_per_table 為ON
my.cnf文件
[mysqld]下增加下面配置
innodb_file_per_table=1
或者
set global innodb_file_per_table=1
4.imp 資料庫
通常到這邊資料庫就會縮得比原本還小
意外插曲:
我在匯入資料庫的途中 , 有把 ibdata1 不小心刪除掉
導致他雖然把資料匯進去, 但mysql找不到這些table 的metadata
後來只要重新在匯一次資料進去, 就可以找到table了
不過這台是備庫還需要設定 master/slave
設完
SET GLOBAL server_id=2;
及
mysql> change master to
-> master_host='192.168.100.189',
-> master_port=3306,
-> master_user='rep',
-> master_password='rep',
-> MASTER_LOG_FILE='mysql-bin.000510',
-> MASTER_LOG_POS=337935886;
在 start slave 就可以讓她進行同步了