InnoDB表存在于MySQL中,但在将数据库复制到新服务器后表示它们不存在

InnoDB表存在于MySQL中,但在将数据库复制到新服务器后表示它们不存在,mysql,innodb,mysqldump,mysql-error-1146,my.cnf,Mysql,Innodb,Mysqldump,Mysql Error 1146,My.cnf,我使用mysqldump导出数据库,然后将其导入到另一台服务器上的MySQL中。如果我“显示表格”,我现在可以看到我的所有表格,但实际上我无法从中选择或描述任何表格 错误1146(42S02):表“mydatabase.user”不存在 我所有的桌子都是InnoDB。我发现人们在使用旧密码时遇到了一个问题,所以我在my.cnf中将其显式设置为0,并确保mysql表中的所有密码都是41位十六进制数字,就像新密码一样。之所以“show tables;”有效,是因为mysqld只会扫描数据库目录中的.

我使用mysqldump导出数据库,然后将其导入到另一台服务器上的MySQL中。如果我“显示表格”,我现在可以看到我的所有表格,但实际上我无法从中选择或描述任何表格

错误1146(42S02):表“mydatabase.user”不存在

我所有的桌子都是InnoDB。我发现人们在使用旧密码时遇到了一个问题,所以我在my.cnf中将其显式设置为0,并确保mysql表中的所有密码都是41位十六进制数字,就像新密码一样。

之所以“show tables;”有效,是因为mysqld只会扫描数据库目录中的.frm文件。只要它们存在,它就会看到一个表定义

如果您将数据导入MySQL并出现此错误消息,我会立即执行以下命令:(顺便说一句,这是MySQL 5.1.45,但在MySQL 5.x中仍然有效)

如果您将数据导入的服务器说InnoDB已禁用,那么您就有一个大问题。以下是您应该做的:

1) 从新的导入数据库服务器中删除所有数据

(二)

3) 运行显示引擎;并确保InnoDB完全运行

4) 将mysqldump重新加载到新的导入服务器中


试试看

我从windows服务器改为Linux服务器时遇到了这个问题。 表是文件,windows文件不区分大小写,但linux文件区分大小写


在我的应用程序中,在sql查询中,有时我使用大写的表名,有时使用小写的表名,因此,有时我得到了与您相同的结果。

I我的情况是
SQLCA.DBParm
参数

我使用了
SQLCA.DBParm=“database=“sle\u database.text”“
,但它必须是

SQLCA.DBParm = "Database='" +sle_database.text+ "'"
说明:您将组合三个字符串:

a) Database='               - "Database='"

b) (name of the database)   - +sle_database.text+

c) ' - "'"

您确定恢复没有错误吗?尝试使用单个事务进行还原,该事务将在出现错误时停止。在我复制它之后,它工作了一段时间,然后它才开始说该表不存在。但我无法创建表,因为它确实存在。。。问题是导入后,此副本的数据发生了一些更改,因此我至少需要能够访问这些更改。此表的.frm文件与数据库的工作副本完全相同。表结构似乎有问题。我帮不了你。在启用日志的情况下尝试新还原,并在此处发布日志中的任何错误。
a) Database='               - "Database='"

b) (name of the database)   - +sle_database.text+

c) ' - "'"