我正在使用的软件是使用MySQL服务器(版本5.0.52)。 某些数据库是动态创建的,我需要列出这些数据库的名称(条件是包含具有不同特定名称的两个表的数据库)。因此,我使用INFORMATION_SCHEMA MySQL查询找到我所需要的:必须manualy重新启动每2或3周可以在information_schema崩溃表上完成mysql查询吗?
SELECT distinct T.table_schema
FROM information_schema.`TABLES` T
inner join information_schema.`TABLES` T2
on T2.table_schema = T.table_schema
where T.table_schema like 'myBase_%'
and T.table_name like '%\_1'
and T2.table_schema like 'myBase_%'
and T2.table_name = 'myTable'
MySQL的服务,因为一些表似乎崩溃或锁定。来自pid3306_crash.err的错误消息(这是第一个错误,但是一旦我拥有此行,软件试图查询的每个表都会出现此错误,给我5000行“无法找到文件”):
[ERROR] D:\MySQL\MySQL Server 5.0\bin\mysqld-nt: Cannot find the file: '.\myBase_56320\petiquettes_k_1.frm' (Errcode: 22)
我启用了这个mysql实例的完整日志,唯一可以访问这个表的mysql查询就是我引用的那个。没有任何其他查询与上面引用的第一个错误相关。 所以我的问题是:是否有可能对information_schema查询崩溃我的基地,或者我应该看看其他地方?
谢谢。
我知道这个版本确实很旧,但由于许可证问题和工作环境的兼容性问题,我无法花费数月时间升级,而且我现在没有时间去做。 我会尝试进一步查看日志以尝试解释它。 我会尝试使用临时tablse来查看它是否改变任何东西,谢谢。 – nivolas