访问视图数据库出现错误提示:
数据库出现错误,(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不行,重装系统,
提示
移动数据库发现数据库地址写到别的地址了,移动数据注意事项:
-
SELECT
-
TABLE_NAME,
-
UPDATE_TIME
-
FROM
-
INFORMATION_SCHEMA. TABLES
-
WHERE
-
TABLE_SCHEMA = '数据库名';
分别查看两地地址下面数据库的修改情况, -
SELECT
-
TABLE_NAME,
-
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
可以看到是否有命中索引,是否需要文件排序,是否需要临时表等等。