近几日某快捷酒店的客户资料数据库被曝光,共有2000万条记录。得到备份文件后我就想导入自己服务器的MySQL数据库来处理。可惜一波三折,小问题有如下几个:
一、5.3G的SQL文件通过FTP上传服务器 phpmyadmin 的 upload 文件夹后通过 phpmyadmin 导入,因为结构问题,失败。
二、采用SSH登陆到 MySQL 命令行,Source命令导入 upload 文件夹中的 5.3GB SQL文件成功,可惜随着SSH窗口关闭,期待中的后台继续插入也停止了。
三、采用 Screen 命令开窗口继续 Source ,后台可以正常导入。但是速度真慢,导了五个多小时才进去30万条记录,这2000万条不就需要20天?坚决不能忍受!!
四、怀疑是数据引擎问题,因为都是 InnobDB,换成MyISAM再次以 < 形式导入。导入到一半服务器假死,HTML静态网页可以解析,PHP都解析不了,进入后台提示“ / (Root filesystem)”空间不足,当时安装划分了
/boot 256MB
/tmp 5GB
/home 450GB
/ 11GB
/swap 1024MB
11GB 怎么就不够了呢,多方查找才知道是数据库记录文件作怪,表现形式为:
目录 “/usr/local/mysql/data/” 下存在大量的运行记录文件,文件名为
mysql-bin.000001~~~mysql-bin.002081 等几千个,大小从几十 KB到900MB不等。
原来是数据记录文件,进入Mysql 输入命令
mysql> reset master; (清除日志文件)
进系统一看,原来 / 分区占用97%,现在只用了 51% ,原来这些日志竟然占了5GB左右。惊人!
经查,Mysql Data目录下大量mysql-bin.**** 文件是叫做MySQL Binary Log,
主要有下面两个作用:
- 数据恢复。
- 在主从服务器上提高复制的可靠性。这个其实是主要的作用,但是我根本没有主从服务器,所以用不着,所以修改配置文件,关闭系统日志和同步记录。
命令如下:
找到my.cnf或者my.ini
#log-bin=mysql-bin
#binlog_format=mixed
重启MySQL,彻底解决!