去玩玩游戏私服论坛

 找回密码
 立即注册

查看: 2855|回复: 0
打印 上一主题 下一主题

问道磁盘满了数据库启动不了解决方法

[复制链接]

487

主题

489

帖子

-2488

积分

限制会员

积分
-2488
跳转到指定楼层
楼主
发表于 2018-10-30 14:31:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  在MySQL数据库中,如果不指定innodb_file_per_table=1参数单独保存每个表的数据,MySQL的数据都会存放在ibdata1文件里,时间久了这个文件就会变的非常大。
  下面是参考网上的一些资料,把数据分别保存在各数据库子目录里的方法,这样新产生的ibdata1文件就不会太大了。下面是在Ubuntu 14.04.12 x64,MySQL5.5上对ibdata1进行瘦身,操作过程的整理。
  1、备份数据库中的数据。
  mysqldump -u root -p --extended-insert --all-databases --add-drop-database --disable-keys --flush-privileges --quick --routines --triggers > /home/all-database.sql
  //有的文档用的是这样的参数:mysqldump -q -uroot -p --add-drop-table --all-databases --events >/home/all-database.sql
  如果ibdata1上百GB,备份过程可能需要几小时。
  2、停止MySQL服务。
  service mysqld stop
  3、删除ibdata1、ib_logfile*等文件
  编辑框加入文本
  mv ibdata1 ibdata1.20160419
  mv ib_logfile0 ib_logfile0.20160420
  mv ib_logfile1 ib_logfile1.20160420
  4、修改my.cnf配置文件
  vi /etc/mysql/my.cnf
  在[mysqld]子项下增加如下配置:
  innodb_file_per_table = 1
  5、删除MySQL、performance_schema之外的所有数据库
  cd /var/lib/mysql
  rm -rf zabbix
  服务器上只有Zabbix数据库。
  6、重启MySQL服务
  service mysqld start
  ps -ef|grep mysql
  7、恢复数据(重新导入数据)
  mysql -u root -p
  Enter password:
  >source /home/all-databaes.sql
  >exit
  //有的文档用这样的命令格式:mysql -uroot -p < /home/all-database.sql
  Enter password:
  其中的/home/all-database.sql即为第一步备份生成的文件,如果原来数据库中数据较多,还原过程可能会持续较长时间,请耐心等待还原完成。如果超过30个小时还没完成,可能要考虑中止恢复数据操作,先清除一部分table中的数据,从步骤1重新开始。如果table中记录特多又可以全部删除,用truncate 速度比较快。
  三三在线http://www.33ol.com/专注高防服务器,服务不同类型客户,有多种DDOS、CC攻击应对策略,7x24小时售后服务,帮助您保护服务器安全,让您更专注业务。企点Q:4000900901电话:4000900901

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|网站地图|网页游戏私服论坛

GMT+8, 2024-11-14 10:05 , Processed in 0.078126 second(s), 24 queries , Gzip On.

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表