数据库服务器iddata磁盘满了

访问视图数据库出现错误提示:

数据库出现错误,(126) Incorrect key file for table '/tmp/#sql_87c_0.MYI';

df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            7.9G  4.0K  7.9G    1% /dev
tmpfs           1.6G  692K  1.6G    1% /run
/dev/sda1       583G  6.8G  547G    2% /
none            4.0K     0  4.0K    0% /sys/fs/cgroup
none            5.0M     0  5.0M    0% /run/lock
none            7.9G     0  7.9G    0% /run/shm
none            100M     0  100M    0% /run/user

,目前是好了,之前可用只有/dev/sda1       583G  582G  1000M    100% /  可用没有了,利用率100%

sudo find / -name ibdata*
/var/lib/mysql/ibdata1

 

原因就不多说了,,,,

直接上干货。

1. 备份数据库

mysqldump -q -uroot -ppassword --add-drop-table --all-databases >all1.sql

2.停止服务

 service mysqld stop

3. 修改/etc 下面的配置文件(可选)

 

vi /etc/my.cfg
再该文件下加入mysqld 下加入
innodb_file_per_table=1

#该步骤可以不要,看自己怎么设定,如果想要每个数据库有自己的数据文件就必须要这一步骤,如果能够接受 多个数据库共享一个数据文件,可以不要该步骤

 

4.删除 idata1 等文件

rm -f ibdata1 ib_logfile*
#删除原来的ibdata1文件及日志文件ib_logfile

5.启动服务,还原数据库

 service mysqld start         (启动数据)
mysql -uroot -proot <all1.sql   (还原数据库)

试过之后不行,报错起不起来,报提示没有mysql.sock文件,

重装mysql不行,重装系统,

提示

移动数据库发现数据库地址写到别的地址了,移动数据注意事项:

  1. SELECT

  2. TABLE_NAME,

  3. UPDATE_TIME

  4. FROM

  5. INFORMATION_SCHEMA. TABLES

  6. WHERE

  7. TABLE_SCHEMA = '数据库名';分别查看两地地址下面数据库的修改情况, 

  8. SELECT

  9.    TABLE_NAME,

  10.         UPDATE_TIME
        FROM
            INFORMATION_SCHEMA. TABLES
        WHERE
            TABLE_SCHEMA = 'koprogram' and UPDATE_TIME > '2019-09-30';

 

怎么样判断mysql语句执行效率

直接使用mysql的explain即可

例如你的sql是 select * from table
看效率可以这样
explain select * from table
可以看到是否有命中索引,是否需要文件排序,是否需要临时表等等。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值