原创

mysql ibdata1文件过大解决

问题 :阿里云有台mysql服务器的硬盘快满了。主要是/var/lib/mysql/ibdata1文件很大   1347044-20211019145332781-1690283613 1347044-20211019145413934-1478373441 解决方法:备份数据库-->停用数据库-->修改mysql配置文件-->删除ib*开头的文件-->启动数据库-->还原数据库 1.备份
mysqldump -u root -p  --all-databases  --add-drop-database   --flush-privileges --routines   > /mnt/data/all-database.sql
参数说明:
--all-databases         备份全部数据库
--add-drop-database     每个数据库创建之前添加drop数据库语句
--flush-privileges     在导出mysql数据库之后,发出一条FLUSH  PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候
--routines           导出存储过程以及自定义函数
2.停用数据库
systemctl  stop mysqld  或者 service mysqld stop
3.修改文件
vim /etc/my.cnf
[mysqld]
innodb_file_per_table=1
4.删除文件
cd /var/lib/mysql/
rm -f  ib*
5.启动数据库
systemctl start mysqld  或者 service mysqld start
6.还原数据库
mysql  -uroot -p
source  /mnt/data/all-database.sql
完成! 注意事项: 1.停用数据库注意要用服务停,不要直接kill, 后面重启可能会报错。 2.修改配置文件并且没有删除ib* ,数据库一直起不来,报错,把ib*文件删除在重启 3.Table‘performance_schema.session_variables’ doesn’t exist的异常
3.1  mysql_upgrade -uroot -p
3.2  systemctl stop mysqld
3.3  systemctl  start  mysqld
 
正文到此结束
Loading...