MYSQL下有个库`是直接从别的机器下复制文件过来的`在命令行MYSQL里可以show tables到全部表;但是有些表select时说不存在.从GUI里进去就看不到这些不存在的表``这是怎么回事``我的权限是ROOT``

解决方案 »

  1.   

    根据你描述的现象,那些不存在的表有可能是innodb表,这种表要正常用的话,必须将原机中的ibdata1等数据文件件也复制过来
      

  2.   

    我试验了下``把ibdata1复制过来MYSQL可以启动`但没有什么作用```还是提示不存在``要是把``ib_logfile1``和ib_logfile0也复制过来```MYSQL就启动不起来``这两个机器上的ibdata1是一样大的``ib_logfile一个是5M多`一个是10M多```我觉得可能和版本有关``但是原来的机器上用的什么版已经不能知道了``怎么办?
      

  3.   

    ibdata1文件大小是?复制过来后,要检查本机配置文件my.cnf中的ibdata1相关设置
    进入mysql,执行show variables like '%innodb%',可以查看当前innodb是否启用及当前的设置
      

  4.   

    我又重装了个MYSQL 4.1试了下``也不行``  show tables能看到``select就报错``不过和mysql5下报的错不一样了``是`Got error 1 from storage engine``在这两版的err文件里都有`Cannot find table XXXX/classdb from the internal data dictionary
    of InnoDB though the .frm file for the table exists. Maybe you
    have deleted and recreated InnoDB data files but have forgotten
    to delete the corresponding .frm files of InnoDB tables, or you
    have moved .frm files to another database?
    See http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html
    how you can resolve the problem.我去上面说的页面看了看也没发现什么有用的信息``这怎么办?
      

  5.   

    原ibdata1文件和新环境下的ibdata1都是10M``下面是我这的输出`mysql> show variables like '%innodb%';
    +---------------------------------+------------------------+
    | Variable_name                   | Value                  |
    +---------------------------------+------------------------+
    | have_innodb                     | YES                    |
    | innodb_additional_mem_pool_size | 3552256                |
    | innodb_autoextend_increment     | 8                      |
    | innodb_buffer_pool_awe_mem_mb   | 0                      |
    | innodb_buffer_pool_size         | 173015040              |
    | innodb_data_file_path           | ibdata1:10M:autoextend |
    | innodb_data_home_dir            |                        |
    | innodb_fast_shutdown            | ON                     |
    | innodb_file_io_threads          | 4                      |
    | innodb_file_per_table           | OFF                    |
    | innodb_flush_log_at_trx_commit  | 1                      |
    | innodb_flush_method             |                        |
    | innodb_force_recovery           | 0                      |
    | innodb_lock_wait_timeout        | 50                     |
    | innodb_locks_unsafe_for_binlog  | OFF                    |
    | innodb_log_arch_dir             |                        |
    | innodb_log_archive              | OFF                    |
    | innodb_log_buffer_size          | 2097152                |
    | innodb_log_file_size            | 87031808               |
    | innodb_log_files_in_group       | 2                      |
    | innodb_log_group_home_dir       | .\                     |
    | innodb_max_dirty_pages_pct      | 90                     |
    | innodb_max_purge_lag            | 0                      |
    | innodb_mirrored_log_groups      | 1                      |
    | innodb_open_files               | 300                    |
    | innodb_table_locks              | ON                     |
    | innodb_thread_concurrency       | 8                      |
    +---------------------------------+------------------------+
    27 rows in set (0.00 sec)配置文件my.cnf中的ibdata1相关设置就是要改上面的变量内容``??
      

  6.   

    windows下配置文件是my.ini
    1、 .frm文件所在的文件夹名与原机要相同
    2、 将原机的ibdata1文件覆盖本机的ibdata1文件前要先停止本机的mysql服务
      

  7.   

    你使用的mysql版本是?
    刚才在windows下的mysql5.0.51下测试了,没问题
    将原来的test库(下面全是innodb表) 与ibdata1复制到 另外机器的mysql5.0.51及5.1.24下都能正常使用注:windows下默认情况ibdata1与建立的数据库文件在同一路径
      

  8.   

    alter your table talbename discard tablespace.
    ...
      

  9.   

    ydage兄`我都是这样做的``不行``
      

  10.   

    yueliangdao0608`我知道你在疯狂进修英语``可你说的我看不懂啊``
      

  11.   

    与.frm同名的还有一些文件`.ism
    .isd
    .myd
    .myi它们都干什么的```.ism
    .isd
    的文件好像不是每个表都有``
      

  12.   

    ibdata1与数据库文件共有多大,如果数据不是很重要的话,可以通过QQ发过来,帮助你测试下
      

  13.   

    最后搞定了```
    MD是版本问题``原库是MYSQL4.0.X下的``