mysql – INFORMATION_SCHEMA选择错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – INFORMATION_SCHEMA选择错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2624字,纯文字阅读大概需要4分钟。
内容图文
![mysql – INFORMATION_SCHEMA选择错误](/upload/InfoBanner/zyjiaocheng/896/dfd404c6482741c89b25283e17ba1616.jpg)
我正在尝试从information_schema中选择数据但是我收到以下错误.我怎样才能解决这个问题?
mysql> SELECT * FROM information_schema.tables ;
ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)
解决方法:
我发现这个错误特别令人不安,因为MySQL引入了带有MySQL 5.0的INFORMATION_SCHEMA. @gbn’s answer显示了这个bug
>回到MySQL 5.0.16
>据报道任何有此事的操作
>基于IBM AIX 5.3 ML2操作系统中发生的错误
> 2006-01-26关闭
MySQL对数据库的定义只是datadir下的一个子文件夹.
现在,这就是我发现错误特别令人不安的原因:INFORMATION_SCHEMA数据库不应该是datadir下的显示文件夹.
例如
> datadir是/ var / lib / mysql
>您有两个数据库:db1和db2
转到操作系统并运行以下命令:
cd /var/lib/mysql
ls -l
你会看到几个文件夹:
> mysql
> db1
> db2
>测试(因为MySQL默认安装测试数据库)
>. (目前的目录)
> ..(父母dir)
在mysql中,当你做SHOW DATABASES;时,你不应该看到.和…源代码将确保这一点.现在,INFORMATION_SCHEMA在哪里?你猜怎么着? INFORMATION_SCHEMA中的所有表都是临时表,并使用内存存储引擎.另请注意,您没有看到名为INFORMATION_SCHEMA的文件夹.现在,查看INFORMATON_SCHEMA.TABLES的定义:
mysql> use information_schema
Database changed
mysql> show create table tables\G
*************************** 1. row ***************************
Table: TABLES
Create Table: CREATE TEMPORARY TABLE `TABLES` (
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
`TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
`ENGINE` varchar(64) DEFAULT NULL,
`VERSION` bigint(21) unsigned DEFAULT NULL,
`ROW_FORMAT` varchar(10) DEFAULT NULL,
`TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
`AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_FREE` bigint(21) unsigned DEFAULT NULL,
`AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
`CREATE_TIME` datetime DEFAULT NULL,
`UPDATE_TIME` datetime DEFAULT NULL,
`CHECK_TIME` datetime DEFAULT NULL,
`TABLE_COLLATION` varchar(32) DEFAULT NULL,
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
`CREATE_OPTIONS` varchar(255) DEFAULT NULL,
`TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8
1 row in set (0.05 sec)
我完全责怪源代码上的这个错误,因为就像mysql旁路一样.和..作为不被视为数据库的特殊情况文件夹,INFORMATION_SCHEMA也被认为是一个特殊的案例文件夹,一个在datadir下没有显示文件的特殊案例文件夹.
我强烈建议只将MySQL升级到最新版本,因为正如@gbn发现的那样,有一个错误报告,但它被标记为已关闭.这只会发生
>如果你还在运行一个非常旧版本的mysql
>在Ubuntu OS的源代码中没有正确处理这种情况
@gbn从我那里得到一个1找到错误报告,这让我看起来更深一点
内容总结
以上是互联网集市为您收集整理的mysql – INFORMATION_SCHEMA选择错误全部内容,希望文章能够帮你解决mysql – INFORMATION_SCHEMA选择错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。