MySQL 说表存在,然后说表不存在

发布于 2024-08-23 21:23:24 字数 936 浏览 13 评论 0原文

检查数据库生成 sql(看起来不错):

CREATE TABLE `HourOfDay` (
  `id` int(11) NOT NULL,
  `hourString` varchar(2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

检查文件系统(它在那里):

# ls -al Mycomp_test | grep -i hour
-rw-rw----    1 _mysql  wheel      0 Mar  1 08:13 HourOfDay.MYD
-rw-rw----    1 _mysql  wheel   1024 Mar  1 08:13 HourOfDay.MYI
-rw-rw----    1 _mysql  wheel   8598 Mar  1 08:13 HourOfDay.frm

检查数据库(看起来不错):

»mysql -u root Mycomp_test -e 'show tables' | grep -i hour
HourOfDay

检查数据库表(哎呀天哪!?):

»mysql -u root Mycomp_test -e 'show create table HourOfDay'
ERROR 1146 (42S02) at line 1: Table 'mycomp_test.hourofday' doesn't exist

更新:更多信息

  • 这是一个运行 mysql-5.1.38-osx10.5-x86_64 的 OSX 系统

  • 如果我删除数据库并重新创建它,我会得到相同的错误(它可以可靠地重现)。

check the database-generating sql (looks fine):

CREATE TABLE `HourOfDay` (
  `id` int(11) NOT NULL,
  `hourString` varchar(2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

check the file system (it's there):

# ls -al Mycomp_test | grep -i hour
-rw-rw----    1 _mysql  wheel      0 Mar  1 08:13 HourOfDay.MYD
-rw-rw----    1 _mysql  wheel   1024 Mar  1 08:13 HourOfDay.MYI
-rw-rw----    1 _mysql  wheel   8598 Mar  1 08:13 HourOfDay.frm

check the database (looks good):

»mysql -u root Mycomp_test -e 'show tables' | grep -i hour
HourOfDay

check the database table (oops wtf!?):

»mysql -u root Mycomp_test -e 'show create table HourOfDay'
ERROR 1146 (42S02) at line 1: Table 'mycomp_test.hourofday' doesn't exist

UPDATE: More info

  • This is an OSX system running mysql-5.1.38-osx10.5-x86_64

  • If I drop the database and recreate it I get the same error (it's reliably reproducible).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耳根太软 2024-08-30 21:23:24

表'mycomp_test.hourofday'不存在”是可疑的,因为在unix/linux系统上它应该是HourOFDay

"Table 'mycomp_test.hourofday' doesn't exist" is suspicious, as it should be HourOFDay on a unix/linux system.

我乃一代侩神 2024-08-30 21:23:24

8.2.2. 标识符区分大小写

»cat /etc/my.cnf 
[mysqld]
lower_case_table_names=2

8.2.2. Identifier Case Sensitivity

»cat /etc/my.cnf 
[mysqld]
lower_case_table_names=2
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文