导入数据库后,表不显示表关系

时间:2010-08-31 10:39:46

标签: mysql relationship

我使用以下命令将MySQL转储文件导入MySQL服务器。

mysql> create database database_name;
mysql> use database_name;

在Linux命令提示符下,

$ mysql -u user_name -p database_name < /tmp/test1.dmp

但是,在使用phyMyAdmin查看数据库时,新创建的database_name不显示表关系。它只显示表格,但不显示关系。

在mysql数据库中导入数据库之前是否需要设置?

如何提取表之间的关系?

1 个答案:

答案 0 :(得分:0)

我刚刚遇到了同样的问题。

  

在mysql数据库中导入数据库之前是否需要设置?

不完全是,但是在创建表时,默认情况下,在Ubuntu上安装LAMP Server或任何Linux发行版都默认使用MyISAM存储引擎。在InnoDB上支持外键关系。 [more info]

之后更改存储引擎。 [Source answer]

  

您必须在mysql配置文件[my.cnfmy.ini的[mysqld]部分下添加default-storage-engine = InnoDB,具体取决于您的操作系统)并重新启动mysqld服务。我不相信你可以通过phpMyAdmin改变这一点。

在ubuntu上,my.cnf位于/etc/mysql/内。

或者,您可以使用mysql命令

  

的MySQL&GT; SET storage_engine = InnoDb;

在此之后,您在此之后创建的所有表和数据库将使用InnoDB作为其默认存储引擎,从而消除了此后的问题。

  

如何提取表之间的关系?

更改数据库的默认引擎后。您还必须更改表的默认引擎,因为它们尚未更改。使用以下语法更改存储引擎

ALTER TABLE <table_name> ENGINE = innodb

使用phpMyAdmin

  • 选择表格
  • 后转到操作选项卡
  • 转到表格选项[见下文]
  • 您将看到更改表格存储引擎的选项 Image showing Table Options in Phpmyadmin
  • 将存储引擎更改为InnoDb并点击Go

在此之后,使用phpMyadmin导出数据库或使用mysqldump转储数据库。它将显示关系。