MySQL ibdata1和mysql-bin过大的问题

mac2022-06-30  21

Ibdata1过大

原因:ibdata1是存储格式,在INNODB类型数据状态下,ibdata1用来存储文件的数据和索引,而库名的文件夹里的那些表文件只是结构而已。InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。 

1,备份全部数据库,执行命令mysqldump -q -uusername -pyourpassword --add-drop-table -all-databases > /all.sql做完此步后,停止数据库服务。 2,修改mysql配置文件 修改my.ini文件,增加下面配置 innodb_file_per_table = 1对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件 3,删除原数据文件 删除原来的ibdata1文件及日志文件ib_logfile*,删除/var/lib/mysql目录下应用数据库文件夹(mysql文件夹不要删) 4,还原数据库 启动数据库服务 还原全部数据库,执行命令mysql -uusername -pyourpassword < /all.sql

mysql-bin过大

查看关于binlog的配置信息mysql> show variables like '%max_binlog_size%';

重置日志文件,清空原来的日志索引顺序,产生新的日志。mysql>reset master;

删除7天前的日志mysql>PURGE BINARY LOGS BEFORE DATE_SUB(NOW( ), INTERVAL 7 DAY);

删除某日志文件mysql>PURGE BINARY LOGS to 'xxx.log';

 

转载于:https://www.cnblogs.com/sexy/articles/3907623.html

最新回复(0)